前言:最近在了解F#,无意中看到一个日文的教程(http://techbank.jp/Community/blogs/gushwell/default.aspx),觉得很不错,所以希望可以和大家一起分、学习。
 
tuple是可以将2个以上的数据汇总起来管理的数据类型。要是C#也有就好了。
F#的tuple实例代码如下:
#light
let data = (1,2)
printfn "%A" data
printfn "%A" (fst data)
printfn "%A" (snd data)

fst、snd分别表示First、Second,可以用来取出最初的两个元素。运行结果是:
(1, 2)
1
2

(1,2)和1,2都是OK的,有没有()都一样。
如果改写如下这样就会有编译错误。
#light
let data = (1,2,3)
printfn "%A" data
printfn "%A" (fst data)
printfn "%A" (snd data)

fst, snd只能用在包含两个元素的tuple中。
调查后,可以通过如下的方法实现:
let data = 1,2,3
printfn "%A" data
let a,b,c = data    
printfn "%A" a
printfn "%A" b
printfn "%A" c

运行结果如下:
(1, 2, 3)
1
2
3

此外通过如下方法,可以通过"_”就可以忽略不关注的要素。
let a,_,c = data

tuple的要素不一定要同一类型的,还可以由不同类型组成的tuple:
let data = 1,"abc"

此外tuple还可以作为函数的输入参数:
let x = 8,9
let addTuple (a,b) = a + b
printfn "%d" (addTuple x)