我来自C#,发现自己爱上了F#模式匹配语法,因为它比C#switch
更简单,更有用。我喜欢尽可能地使用它,是否有表现或任何其他缺点,以这种例子中的奇怪方式使用它?
match 0 with
|_ when a<b -> a
|_ -> b
答案 0 :(得分:6)
在这个特定的例子中,没有性能损失。在其他情况下,很可能也不会出现性能损失,但绝对确定您必须使用ILSpy之类的内容查看生成的代码。
我还必须补充一点,当你使用F#时,你会发现if/then/else
也非常好。在C#中,if/else
感觉有点尴尬,因为它不能用作表达式,但在F#中并非如此,因此尴尬很快就会消失。
let x = if a < b then a else b
它甚至看起来像普通英语! : - )