【问题标题】:Abusing pattern matching滥用模式匹配
【发布时间】:2015-05-28 03:09:27
【问题描述】:

我来自 C#,发现自己爱上了 F# 模式匹配语法,因为它比 C# switch 更简单,而且更有用。我喜欢尽可能多地使用它,像本例那样以奇怪的方式使用它有什么性能或其他缺点吗?

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

【问题讨论】:

  • 它过于冗长并且可以说是不习惯的,但它的性能并不比if差。

标签: f# pattern-matching


【解决方案1】:

在此特定示例中,不会有性能损失。在其他情况下也很可能不会出现性能损失,但要绝对确定您必须使用 ILSpy 之类的工具查看生成的代码。

我还必须补充一点,当您使用 F# 时,您会发现 if/then/else 也非常好。在 C# 中,if/else 感觉有点别扭,因为它不能用作表达式,但在 F# 中却不是这样,所以别扭很快就消失了。

   let x = if a < b then a else b

它甚至读起来像简单的英语! :-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-17
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多