在F#代码中我有一个元组:
let myWife=("Tijana",32)
我想分别访问元组的每个成员.例如,我想要达到的目标是不可能的
Console.WriteLine("My wife is {0} and her age is {1}",myWife[0],myWife[1])
这段代码显然不起作用,我认为你可以收集我想要实现的东西.
你想通过让她的年龄不变而防止你的妻子老化吗?:)
对于仅包含两个成员的元组,您可以fst
并snd
提取该对的成员.
let wifeName = fst myWife; let wifeAge = snd myWife;
对于更长的元组,您必须将元组解压缩到其他变量中.例如,
let _, age = myWife;; let name, age = myWife;;
另一个非常有用的事情是模式匹配(就像使用"let"绑定提取元素时)可以在其他情况下使用,例如在编写函数时:
let writePerson1 person = let name, age = person printfn "name = %s, age = %d" name age // instead of deconstructing the tuple using 'let', // we can do it in the declaration of parameters let writePerson2 (name, age) = printfn "name = %s, age = %d" name age // in both cases, the call is the same writePerson1 ("Joe", 20) writePerson2 ("Joe", 20)
您可以使用函数fst来获取第一个元素,并使用snd来获取第二个元素.你也可以写自己的'第三'功能:
let third (_, _, c) = c
在这里阅读更多内容:F#语言参考,元组