2015-05-28 41 views
6

我來自C#,發現自己愛上了F#模式匹配語法,因爲它比C#switch更簡單,而且方式更有用。我喜歡儘可能多地使用它,在這個例子中是否有奇怪的方式使用它的性能或其他缺點?濫用模式匹配

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

它過於冗長,可以說是非慣用的,但它並沒有比'if'更糟糕的表現。 – ildjarn

回答

6

在這個特定的例子中,不會有性能損失。在其他情況下,性能損失很可能不存在,但要確保您必須使用類似ILSpy的東西來查看生成的代碼。

我還必須補充說,在使用F#時,您會發現if/then/else也非常好。在C#中,if/else感覺有點尷尬,因爲它不能用作表達式,但在F#中情況並非如此,所以尷尬很快就會消失。

let x = if a < b then a else b 

它甚至讀得像純英文! :-)