滥用模式匹配

时间:2015-05-28 03:09:27

标签: f# pattern-matching

我来自C#,发现自己爱上了F#模式匹配语法,因为它比C#switch更简单,更有用。我喜欢尽可能地使用它,是否有表现或任何其他缺点,以这种例子中的奇怪方式使用它?

match 0 with
|_ when a<b -> a
|_ -> b

1 个答案:

答案 0 :(得分:6)

在这个特定的例子中,没有性能损失。在其他情况下,很可能也不会出现性能损失,但绝对确定您必须使用ILSpy之类的内容查看生成的代码。

我还必须补充一点,当你使用F#时,你会发现if/then/else也非常好。在C#中,if/else感觉有点尴尬,因为它不能用作表达式,但在F#中并非如此,因此尴尬很快就会消失。

   let x = if a < b then a else b

它甚至看起来像普通英语! : - )