鉴于元组:
let tuple = (true, 1)
Run Code Online (Sandbox Code Playgroud)
我如何在条件中使用此元组?像这样的东西:
if tuple.first then //doesnt work
Run Code Online (Sandbox Code Playgroud)
要么
if x,_ = tuple then // doesnt work
Run Code Online (Sandbox Code Playgroud)
我不想这样做:
let isTrue value =
let b,_ = value
b
if isTrue tuple then // boring
Run Code Online (Sandbox Code Playgroud)
有没有一种很好的方法来评估条件中的元组值而不创建单独的函数?
该fst功能可以帮助你在这里.
返回元组的第一个元素
一个例子:
let tuple = (true, 1)
if fst tuple then
//whatever
Run Code Online (Sandbox Code Playgroud)
还有snd第二个元素.
另一种方法是使用模式匹配:
let tuple = (true, 1)
let value =
match tuple with
| (true, _) -> "fst is True"
| (false, _) -> "fst is False"
printfn "%s" value
Run Code Online (Sandbox Code Playgroud)
这可以让你在更复杂的场景中匹配,这是F#中一个非常强大的构造.有关示例,请查看MSDN文档中的元组模式.