F#でif not条件を書く最も良い方法は何ですか?F#条件でない場合
今私はこのようにそれを書いている:
if condition <> true then do
はそれを書くために、他の短い方法はありますか? !と同じように!オペレーター?
if not condition then ...
願わくばは、F#のとあまりにも動作します:
F#でif not条件を書く最も良い方法は何ですか?F#条件でない場合
今私はこのようにそれを書いている:
if condition <> true then do
はそれを書くために、他の短い方法はありますか? !と同じように!オペレーター?
if not condition then ...
願わくばは、F#のとあまりにも動作します:
OCamlでは、あなたは "ない" キーワードを使用することができます。
+1:うん、F#で動作します。必要に応じて括弧で条件を囲みます。 – Juliet
です。オペレータの優先順位に注意してください。 –
AH!私はこれを以前に試みたが、それは私に言っていたエラーを理解することに失敗した。今は、キーワードnotを使ってうまくいきます。本当にありがとう! –
と同じでありnot functionはあるが、それは唯一のboolean型の変数で動作します。
だからあなたが言うことができます:
if (not condition) then do
しかし、それは、Cスタイルの言語のように、他のタイプでは動作しません。
!
はまだF#の演算子であるため、偶然使用しないでください。dereference on a mutable reference cellです。
full operator documentationを参照してください。
あなたも機能ではないことを考慮した場合、その後、あなたはそれにパイプあなたの条件にすることができますので、同様に括弧を避けるために:ビーイングは、あなたの条件関数は引数を取る場合、あなたは必要としないで
if not <| condition param1 param2 then ...
理由
not (condition param1 param2)
を行うには、それはF#は、演算子の優先順位のためのパイプの賛成の代わりに、括弧内にあると思われるので、それを最初の方法を行うために少しクリーナーは、おそらくです。
うわー!これについてのヒントをありがとう。私はあなたがこれを行うのにパイプを使うことができるとは考えていませんでした。 –
私はこれが大好きです。 condition param1 param2 then ... 'は簡単に型指定され、読み込まれ、変更されるので、F#の簡潔さによく合います。かっこは大変です;-) – TaterJuice
重複:http://stackoverflow.com/questions/239888/logical-negation-operator-in-f-equivalent – Orbling
重複して申し訳ありません。私が探しているとき、私はこれを見ませんでした。 –
それは大丈夫です、それは私の答えの警告のために、重要な質問です、 '<> 'を認識していない人のための落とし穴のビット。 – Orbling