📅  最后修改于: 2020-11-21 06:39:13             🧑  作者: Mango
元组是逗号分隔的值集合。这些用于创建临时数据结构,将相关值分组在一起。
例如,(“ Zara Ali”,“ Hyderabad”,10)是一个具有两个字符串值和一个int值的3元组,其类型为(字符串*字符串* int)。
元组可以是相同或不同类型的对,三元组等。
这里提供了一些例子-
// 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)
该程序具有一个接受四个浮点值的元组并返回平均值的函数-
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
编译并执行程序时,将产生以下输出-
Avg of four numbers: 7.275000
元组的各个成员可以使用模式匹配进行评估和打印。
以下示例说明了概念-
let display tuple1 =
match tuple1 with
| (a, b, c) -> printfn "Detail Info: %A %A %A" a b c
display ("Zara Ali", "Hyderabad", 10 )
编译并执行程序时,将产生以下输出-
Detail Info: "Zara Ali" "Hyderabad" 10
F#具有两个内置函数fst和snd,它们以2元组的形式返回第一项和第二项。
以下示例说明了概念-
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)
编译并执行程序时,将产生以下输出-
First member: 23
Second member: 30
First member: "Hello"
Second member: "World!"
First Name: "Zara"
Second Name: "Ali"