当前位置:  开发笔记 > 编程语言 > 正文

访问F#元组中的特定成员

如何解决《访问F#元组中的特定成员》经验,为你挑选了3个好方法。

在F#代码中我有一个元组:

let myWife=("Tijana",32)

我想分别访问元组的每个成员.例如,我想要达到的目标是不可能的

Console.WriteLine("My wife is {0} and her age is {1}",myWife[0],myWife[1])

这段代码显然不起作用,我认为你可以收集我想要实现的东西.



1> Curt Hagenlo..:

你想通过让她的年龄不变而防止你的妻子老化吗?:)

对于仅包含两个成员的元组,您可以fstsnd提取该对的成员.

let wifeName = fst myWife;
let wifeAge = snd myWife;

对于更长的元组,您必须将元组解压缩到其他变量中.例如,

let _, age = myWife;;
let name, age = myWife;;



2> Tomas Petric..:

另一个非常有用的事情是模式匹配(就像使用"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)



3> 小智..:

您可以使用函数fst来获取第一个元素,并使用snd来获取第二个元素.你也可以写自己的'第三'功能:

let third (_, _, c) = c

在这里阅读更多内容:F#语言参考,元组


+1但肯定`trd`或`tri`代表更惯用的命名:)
fst和snd不适用于3元组.
推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有