2015-05-28 13 views
6

Tôi đến từ C# và thấy mình yêu thích cú pháp khớp mẫu F # vì nó đơn giản hơn C# switch và cách hữu ích hơn. Tôi thích sử dụng nó càng nhiều càng tốt, có một hiệu suất hay bất kỳ nhược điểm nào khác để sử dụng nó theo những cách kỳ lạ như trong ví dụ này?Lợi dụng mẫu phù hợp

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

Đó là quá chi tiết và cho là không thành ngữ, nhưng không có hiệu suất kém hơn so với 'if'. – ildjarn

Trả lời

6

Trong ví dụ cụ thể này, sẽ không có hình phạt về hiệu suất. Rất có thể là hình phạt về hiệu suất cũng sẽ không có trong các trường hợp khác, nhưng để chắc chắn bạn sẽ phải xem mã được tạo ra với một cái gì đó như ILSpy.

Tôi cũng phải thêm rằng khi bạn sử dụng F #, bạn sẽ thấy rằng if/then/else cũng rất đẹp. Trong C#, if/else cảm thấy hơi lúng túng, bởi vì nó không thể được sử dụng như là biểu thức, nhưng trong F # nó không phải là trường hợp, và do đó sự lúng túng sẽ sớm biến mất.

let x = if a < b then a else b 

Nó thậm chí còn giống như tiếng Anh đơn giản! :-)

Các vấn đề liên quan