2015-05-28 6 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 

Он даже читается как простой английский! :-)

Смежные вопросы