Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F# 滥用模式匹配_F#_Pattern Matching - Fatal编程技术网

F# 滥用模式匹配

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#中,

我来自C#,发现自己爱上了F#模式匹配语法,因为它比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
差。