F # - Tuples
A tuplelà một tập hợp các giá trị được phân tách bằng dấu phẩy. Chúng được sử dụng để tạo cấu trúc dữ liệu đặc biệt, nhóm các giá trị có liên quan với nhau.
Ví dụ, (“Zara Ali”, “Hyderabad”, 10) là một bộ 3 với hai giá trị chuỗi và một giá trị int, nó có kiểu (string * string * int).
Tuples có thể là cặp, bộ ba, v.v., cùng loại hoặc khác loại.
Một số ví dụ được cung cấp ở đây -
// Tuple of two integers.
( 4, 5 )
// Triple of strings.
( "one", "two", "three" )
// Tuple of unknown types.
( a, b )
// Tuple that has mixed types.
( "Absolute Classes", 1, 2.0 )
// Tuple of integer expressions.
( a * 4, b + 7)
Thí dụ
Chương trình này có một hàm nhận một bộ bốn giá trị float và trả về giá trị trung bình:
let averageFour (a, b, c, d) =
let sum = a + b + c + d
sum / 4.0
let avg:float = averageFour (4.0, 5.1, 8.0, 12.0)
printfn "Avg of four numbers: %f" avg
Khi bạn biên dịch và thực thi chương trình, nó sẽ tạo ra kết quả sau:
Avg of four numbers: 7.275000
Tiếp cận các thành viên Tuple Cá nhân
Các thành viên riêng lẻ của một bộ tuple có thể được đánh giá và in bằng cách sử dụng khớp mẫu.
Ví dụ sau minh họa khái niệm -
Thí dụ
let display tuple1 =
match tuple1 with
| (a, b, c) -> printfn "Detail Info: %A %A %A" a b c
display ("Zara Ali", "Hyderabad", 10 )
Khi bạn biên dịch và thực thi chương trình, nó sẽ tạo ra kết quả sau:
Detail Info: "Zara Ali" "Hyderabad" 10
F # có hai hàm tích hợp, fst và snd, trả về các mục đầu tiên và thứ hai trong một bộ 2.
Ví dụ sau minh họa khái niệm -
Thí dụ
printfn "First member: %A" (fst(23, 30))
printfn "Second member: %A" (snd(23, 30))
printfn "First member: %A" (fst("Hello", "World!"))
printfn "Second member: %A" (snd("Hello", "World!"))
let nameTuple = ("Zara", "Ali")
printfn "First Name: %A" (fst nameTuple)
printfn "Second Name: %A" (snd nameTuple)
Khi bạn biên dịch và thực thi chương trình, nó sẽ tạo ra kết quả sau:
First member: 23
Second member: 30
First member: "Hello"
Second member: "World!"
First Name: "Zara"
Second Name: "Ali"