F# 滥用模式匹配
我来自C#,发现自己爱上了F#模式匹配语法,因为它比C#F# 滥用模式匹配,f#,pattern-matching,F#,Pattern Matching,我来自C#,发现自己爱上了F#模式匹配语法,因为它比C#开关更简单,而且更有用。我喜欢尽可能多地使用它,以这种奇怪的方式使用它是否有性能或任何其他缺点 match 0 with |_ when a<b -> a |_ -> b 将0与 |_当一个 |_->b 在这个特定示例中,不会有性能损失。在其他情况下,很可能也不会出现性能损失,但要绝对确定,您必须使用类似ILSpy的工具查看生成的代码 我还必须补充一点,当你使用F#时,你会发现if/then/else也非常好。在C#中,
开关更简单,而且更有用。我喜欢尽可能多地使用它,以这种奇怪的方式使用它是否有性能或任何其他缺点
match 0 with
|_ when a<b -> a
|_ -> b
将0与
|_当一个
|_->b
在这个特定示例中,不会有性能损失。在其他情况下,很可能也不会出现性能损失,但要绝对确定,您必须使用类似ILSpy的工具查看生成的代码
我还必须补充一点,当你使用F#时,你会发现if/then/else
也非常好。在C#中,if/else
感觉有点尴尬,因为它不能用作表达式,但在F#中情况并非如此,因此尴尬很快就消失了
let x = if a < b then a else b
设x=如果a
它甚至读起来像简单的英语!:-) 它过于冗长,可以说是非惯用语言,但它的性能并不比if
差。