Câu hỏi F # nếu không điều kiện


Cách tốt nhất trong F # để viết một điều kiện nếu không?

Ngay bây giờ tôi đang viết nó như thế này:

if condition <> true then do

Có cách viết nào khác ngắn hơn không? Giống như sử dụng! nhà điều hành?


23
2017-12-11 20:53


gốc


Bản sao: stackoverflow.com/questions/239888/… - Orbling
Xin lỗi vì trùng lặp. Tôi không thấy điều này khi tôi đang tìm kiếm. - Frank Hale
Không sao đâu, đó là một câu hỏi quan trọng, bởi vì câu trả lời trong câu trả lời của tôi, một chút cạm bẫy đối với những người không nhận thức được <>. - Orbling


Các câu trả lời:


Trong Ocaml, bạn có thể sử dụng từ khóa "không":

if not condition then ...

Hy vọng rằng nó cũng hoạt động với F #.


19
2017-12-11 20:55



1: vâng, hoạt động trong F #. Điều kiện xung quanh với parens khi cần thiết. - Juliet
Nó có. Chỉ cần cẩn thận với ưu tiên người vận hành. - Victor Nicollet
AH! Tôi đã thử điều này sớm hơn nhưng không hiểu được lỗi mà nó đang nói với tôi. Bây giờ nó hoạt động tốt bằng cách sử dụng từ khóa không. Cám ơn rất nhiều! - Frank Hale
Tôi sử dụng <| toán tử không, như sau: "nếu không <| biểu thức thì ..." để tránh dấu ngoặc đơn. - Jason
không <| điều kiện - alerya


nếu bạn cho rằng đó không phải là một hàm, thì bạn có thể đặt đường ống điều kiện của bạn vào nó để tránh dấu ngoặc đơn như sau:

if not <| condition param1 param2 then ...

lý do là nếu hàm điều kiện của bạn có các đối số, bạn không cần phải làm

not (condition param1 param2) 

nó có lẽ là một chút sạch hơn để làm điều đó theo cách đầu tiên vì có vẻ như f # có lợi cho các đường ống thay vì dấu ngoặc đơn cho ưu tiên vận hành.


23
2017-12-21 18:15



Wow! Cảm ơn cho tip về điều này. Tôi không có ý tưởng bạn có thể sử dụng đường ống để làm điều này. - Frank Hale
Tôi thích điều này, if not <| condition param1 param2 then ... phù hợp tốt với tính ngắn gọn của F #, vì cả hai đều dễ dàng nhập, đọc và sửa đổi. Dấu ngoặc đơn rất OO ;-) - TaterJuice


không hoạt động, nhưng nó chỉ hoạt động với các biến boolean.

Vì vậy, bạn có thể nói:

if (not condition) then do

Nhưng điều đó sẽ không làm việc với các loại khác như trong ngôn ngữ C-style.

Không được dùng ! do tai nạn, vì nó vẫn là một toán tử trong F #, nó là một dereference trên một ô tham chiếu có thể thay đổi.

Xem -tài liệu vận hành đầy đủ.


6
2017-12-11 21:02





Tôi không biết F # nhưng trong C, sử dụng! toán tử tôi viết:

if(!condition) { ... }

đó là giống như

if(condition == false) { ... }

-14
2017-12-11 20:55



! là toán tử để lấy giá trị của ô tham chiếu trong F #. bạn cần not chức năng. - Tomas Petricek
@Tomas Petricek, tôi bắt đầu với "Tôi không biết F #". Tôi thấy anh ta đã làm nếu điều kiện <> đúng rồi ... nên tôi đoán "có lẽ anh ấy không biết anh ta có thể phủ nhận điều kiện và nhận được kết quả tương tự" - BlackBear
Điểm tốt, mặc dù tôi nghĩ rằng nó có thể làm với một chỉnh sửa để làm cho rằng abundantly rõ ràng. - Orbling
Cảm ơn tất cả các câu trả lời. Vấn đề tôi gặp phải là với câu lệnh phức tạp hơn nếu có nhiều điều kiện. Tôi biết về từ khóa không phải nhưng tôi đã không xây dựng câu lệnh một cách chính xác. Sau khi hỏi và đọc câu trả lời của bạn, tôi đã dành nhiều thời gian hơn để xem kỹ mã và tìm ra nơi tôi đã đi sai. Cảm ơn các bạn! - Frank Hale