問題タブ [short-circuiting]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2173 参照

functional-programming - 関数/式のリストをショートサーキットで評価するための Python イディオムはありますか?

「ロジック パズル」を解くための簡単なスクリプトを書きました。これは、多くの規則が与えられ、「A、B、C という名前の 5 人のミュージシャンがいます。 、D、および E がコンサートで演奏している場合、それぞれが次々に演奏します... A が B の前にあり、D が最後ではない場合...誰がいつ演奏するかの順序は何ですか?」等

可能な解決策を評価するために、各「ルール」を個別の関数として記述しました。この関数は、可能な解決策 (単純に文字列のリストとして表される) が有効かどうかを評価します。たとえば、

最初のルールが失敗した後にルールの評価を停止する機能を備えた、可能な解決策がそのようなすべてのルールに合格するかどうかをテストする Pythonic の方法を見つけることに興味があります。

最初に、可能な限り単純なことを書きました。

しかし、これはかなり醜いようでした。リスト内包表記のようなものを使用して、これをもう少しエレガントに読むことができるのではないかと思いました...

all()...しかし、関数が評価される前にリスト内包表記が生成されるため、これにはまったく短絡しないという副作用があることに気付きました-最初のルールが返された場合でも、すべてのルールが評価されますFalse.

だから私の質問は:の長いリストを書き出す必要なしに、ショートサーキットを使用してTrue/式のリストを評価できる、よりPythonic/機能的な方法はありますか?Falsereturn f1(s) and f2(s) and f3(s) ...

0 投票する
4 に答える
209 参照

vb.net - 短絡: OrElse と Or の組み合わせ

私が次のものを持っている場合...

...そして a がTrue の場合、明らかに b は評価されません。しかし、 を追加するOrとどうなりますか?

c は評価されますか? そして、括弧を入れるとどうなりますか?

これが基本的なものである場合はお詫び申し上げます。もちろん、自分で答えをテストすることはできますが、この質問の答えがここや他の場所で見つかりません。OrOrElseを扱う多くの質問がありますが、 Or扱うものは何もありませ

0 投票する
2 に答える
2229 参照

scripting - Cシェルスクリプトに短絡論理演算子がありますか?

CシェルスクリプトはCのように動作し、論理演算子に短絡評価を使用すると思いました。

しかし、ifステートメントでは、最初の条件が真であっても、2番目の条件がチェックされてエラーが発生します。

Cシェルスクリプトに論理和の短絡がありますか?

0 投票する
4 に答える
5670 参照

mysql - MySQLはIF()関数を短絡しますか?

2番目のテーブルからデータをクエリする必要がありますが、プライマリテーブルのまれな条件のセットが満たされた場合に限ります。

a、b、およびcの条件はほとんどの場合偽であるため、私の考えでは、サブクエリは結果セットのほとんどの行に対して実行されることはなく、したがって結合よりもはるかに高速です。しかし、それはIF()ステートメントが短絡した場合にのみ当てはまります。

しますか?

あなたたちが提供できるどんな助けにも感謝します。

0 投票する
4 に答える
3179 参照

tsql - 数値以外のフィールドで「間」の数値データをクエリするにはどうすればよいですか?

データベースで見つけたばかりのクエリがあり、レポートが失敗する原因となっています。クエリの基本的な要点:

現在、myField はすべての行に数値データを含んでいるわけではありません [nvarchar 型です]... しかし、このクエリは明らかに、このフィールドのデータが数値である行のみを考慮するように設計されています。

これに関する問題は、T-SQL (私が理解している限り) が Where 句を短絡しないため、例外を除いてデータが数値ではないレコードを破棄することです:

Msg 245, Level 16, State 1, Line 1 Conversion failed when converting the nvarchar value '/A' to data type int.

myField が数値であるすべての行を一時テーブルにダンプしてから、フィールドが指定された範囲内にある行を照会する以外に、何が最適でしょうか?

返されたデータを分析し、何が起こっているのかを確認するための純粋な私の最初の解析は次のとおりです。

しかし、最初のクエリで行ったのと同じエラーが発生しますが、この時点では数値であってはならないデータを変換していないため、理解できません。サブクエリは、myField に数値データが含まれる行のみを返す必要があります。

朝のお茶が必要かもしれませんが、これは誰にとっても意味がありますか? 別の目のセットが役立ちます。

前もって感謝します

0 投票する
5 に答える
220 参照

perl - `||` は Perl でどのように機能しますか?

||Perlではどのように動作しますか? ||Cスタイルの操作を実現したい。

0 投票する
12 に答える
36143 参照

c++ - C++ では、なぜ true && true || 偽 && 偽 == 真?

コンパイラが次のコードを解釈する方法を誰かが知っているかどうか知りたいです:

&& は || よりも優先順位が高いため、これは本当ですか? または|| は短絡演算子ですか (つまり、短絡演算子は後続のすべての式を無視しますか、それとも次の式だけを無視しますか)?

0 投票する
3 に答える
346 参照

javascript - JavaScriptのコーディング手法または悪いコード?

他の誰かが書いたJavaScriptをデバッグしているときに、今まで見たことのないコードに出くわしました。サンプルは次のとおりです。

関数doItNow()の2行目の目的は、doSomethingが存在するかどうかを確認し、それを呼び出すことですか?そのようです:

JSLintはそれが気に入らないので、アプリに悪いコードを入れたくありません。洞察はありますか?

0 投票する
10 に答える
8110 参照

java - Javaは、「&&」(and)演算子のすべての引数を、それらの1つがfalseであってもチェックしますか?

私はそのようなコードを持っています:

オブジェクトがヌルであると仮定します。

このコードは nullPointerException になりますか、それとも単に if ステートメントが実行されないのでしょうか?

もしそうなら、このコードをよりエレガントにリファクタリングするにはどうすればよいですか (もちろん可能であれば)?

0 投票する
2 に答える
926 参照

c# - Linq IQueryable が空の検索パラメーターを短絡する

次の方法で汎用リポジトリを持っています

現在、1 つ以上のパラメーターが入力されているか、空白のままになっている可能性があるフロント エンドを介して検索機能を提供しようとしています。空のパラメータの式をショートサーキットするのに問題があります。

この問題は、リポジトリで次の例を呼び出すことで実証できます。

を使用してクエリを列挙すると、 if is がToList()スローされます。System.NullReferenceExceptionparamnull

私はこれを理解しておらず、修正方法も知らないため、ポインタをいただければ幸いです。ありがとう。

更新:以下のコメントに応えて、null チェックを追加しました。私の実際のコードは次のようになります

問題がどこにあるのか、まだわかりません。

編集:コメントへの応答として、一般的なリポジトリGetAllByFilterコード:

簡単なGetAllクエリを実行すると

同じテーブルで、null(予想どおり) レコードが返されません。