4

有没有办法在 F# 的比赛中进行比赛?我注意到你可以像这样对另一个尾随...

match L.Head with
| null -> []
| _ -> match N with
| 1 -> [L.Head]
| _ -> []

但是有没有办法让以 _ 结尾的比赛可以放在另一场比赛的中间?这似乎给出了一个错误......有没有更好的方法来做到这一点,你的逻辑是否需要它?前任:

match A with
| 0 -> match B with
       | 1 -> 1
       | _ -> 0
| _ -> 2
4

2 回答 2

7

为什么不在元组上使用 match -

match (A,B) with
|0,1 -> 1
|0,_ -> 0
|_,  -> 2
于 2013-09-09T00:48:34.750 回答
0

不确定 7 年前是否可行,但现在您可以使用它struct来减少分配:

match struct (A, B) with
| 0, 1 -> 1
| 0, _ -> 0
| _    -> 2

旧答案创建实例System.Tuple`2,而这创建System.ValueTuple`2 反编译实例

于 2021-03-16T16:20:08.783 回答