3

给定元组:

let tuple = (true, 1)

我如何在条件中使用这个元组?像这样的东西:

if tuple.first then //doesnt work

或者

if x,_ = tuple then // doesnt work

我不想这样做:

let isTrue value = 
   let b,_ = value
   b

if isTrue tuple then // boring

有没有一种很好的方法来评估条件内的元组值而不创建单独的函数?

4

3 回答 3

7

fst功能可以在这里为您提供帮助。

返回元组的第一个元素

一个例子:

let tuple = (true, 1)
if fst tuple then
    //whatever

第二个元素还有一个snd

另一种选择是使用模式匹配

let tuple = (true, 1)

let value = 
    match tuple with
    | (true, _) -> "fst is True"
    | (false, _) -> "fst is False"

printfn "%s" value

这可以让您匹配更复杂的场景,这是 F# 中非常强大的构造。查看MSDN 文档中的元组模式以获取一些示例。

于 2012-05-17T15:19:56.200 回答
3

您正在寻找的功能是“fst”。

let v = (true, 3)
if fst v then "yes" else "no"

"fst" 将得到一个元组的前半部分。“snd”将获得下半场。

有关其他信息,MSDN 在此处提供信息

于 2012-05-17T15:21:30.317 回答
2

您可以使用fst功能:

if tuple |> fst then
    ...
于 2012-05-17T15:21:51.147 回答