問題タブ [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.
sql - SQL WHERE 句の短絡は評価されますか?
SQL WHERE 句のブール式は短絡評価され ますか?
例えば:
@key IS NULL
が に評価される場合true
、評価@key IS NOT NULL AND @key = t.Key
されますか?
いいえの場合、なぜですか?
はいの場合、それは保証されていますか?ANSI SQL の一部ですか、それともデータベース固有ですか?
データベース固有の場合、SQLServer? オラクル?MySQL?
c# - 私はこれが好きではありません... これは言語をごまかしていますか?
私は次のようなものを数回見ました...そして私はそれが嫌いです。これは基本的に言語を「だます」ことですか?それとも..常に IsNullOrEmpty が最初に評価されるため、これを「OK」と見なしますか?
(文字列が関数から出たときに NULL であるべきかどうかについて議論することはできますが、それは実際の問題ではありません。)
編集: この言語の基本を思い出させてくれた皆さんに改めて感謝します。「なぜ」それが機能するかはわかっていましたが、コンセプトの名前を知らなかった/覚えていなかったなんて信じられません。
(誰かがバックグラウンドを必要とする場合に備えて..コードのさまざまな場所で、NULL文字列と.Length> x例外によって生成された例外のトラブルシューティング中にこれに遭遇しました。したがって、上記のコードを見たとき、他のすべてに加えて、私の欲求不満はそこから引き継がれました。)
java - Java 三項 (即時 if) 評価
これに答える仕様の関連部分が見つかりません。Java の条件演算子ステートメントでは、true と false の両方の引数が評価されますか?
したがって、次は NullPointerException をスローできますか
c++ - Accelerated C++ から以下を説明してください
Accelerated C++ からの次の抜粋が理解できません。
で始まる
|| だから || は左結合であり、||、==、および - の相対的な優先順位のため、
r == 0 || r == 行 - 1 || c == 0 || c == cols - 1 は、すべての部分式を括弧で囲んだ場合と同じことを意味します。
((r == 0 || r == (行 - 1)) || c == 0) || c == (列 - 1)
そして、
私はこれを理解していません。あなた自身の言葉で同じことを私にどのように伝えますか?
language-agnostic - すべてのプログラミング言語にブール短絡評価がありますか?
PHP コード内
最初のオペランドが に評価される場合、 は評価されfalse
ませb()
ん。
同様に、
最初のオペランドが に評価される場合、 は評価されtrue
ませb()
ん。
これは、Java、C# などのすべての言語に当てはまりますか?
使用したテストコードです。
iphone - "obj!=nilを使用する場合のiPhoneのEXC_BAD_ACCESS
Objective-Cには非常に単純なコード行があります。
ときどき、理由もなく、EXC-BAD-ACCESSを使用してこのコード行でゲームがクラッシュします。通常、何かが競技場から削除される頃のように思われるので、selectedEntityが割り当て解除されたと推測すると、この結果になります。既存のエンティティを選択することは不可能であることに加えて(しかし、誰が知っているか、これは私のコードでは実際には当てはまらないかもしれません...)、アクセスする前に選択されたエンティティがあるかどうかを具体的にチェックしているという事実は、私がすべきではないことを意味しますここでは問題はありません。Objective-Cはブール型の短絡をサポートすることになっていますが、編集ではないようです。短絡は問題とは何の関係もないようです。
また、時々爆発していることを知っていたので、このコードブロックの周りに@ try / @ catchを配置しましたが、それは無視されているようです(EXC-BAD-ACCESSをキャッチできないと思います)。
だから基本的に私は誰かがこれを捕まえて捨てる方法を知っているのか(ゲームがクラッシュしない限りこのエラーを気にしないので)、なぜそれが起こるのか説明できるのだろうかと思っています。Objective-Cが「nil」値で奇妙なことをすることを知っているので、オブジェクトポインタでもnilでもない奇妙なスペースを指していると思います。
編集:明確にするために、私は以下のコードが間違っていることを知っています、それは私が私のプログラムで起こっていたと私が推測していたことです。私はそれが問題を引き起こすかどうか尋ねていました-それは確かにそうです。:-)
編集:消去される前にエンティティを選択できるフリンジケースがあるようです。したがって、コードの進行は次のようになります。
したがって、自動解放プールがまだ解放されていないため、オブジェクトはnilではありませんが、保持カウントは0であるため、とにかくアクセスすることはできません...またはそれらの線に沿った何か?
また、私のゲームはシングルスレッドなので、これはスレッドの問題ではありません。
編集:私は2つの方法で問題を修正しました。まず、そのフリンジケースではエンティティの選択を許可しませんでした。次に、[entities removeObjectAtIndex:i](削除されるエンティティを削除するコード)を呼び出す代わりに、次のように変更しました。
jibが提案したように、変数を解放すると同時に変数にnilを割り当てていることを確認してください。
matlab - MATLABの&と&&の違いは何ですか?
&
MATLABのと&&
論理演算子の違いは何ですか?
perl - Perl の ( or, and ) と ( ||, && ) 短絡演算子の違いは何ですか?
これらのサブルーチンのうち、他のサブルーチンと異なっているのはどれですか?
私は C と Perl 4 から Perl 5 に移行し、||
より多くのスクリプトが使用されているのを見てor
、その見た目が気に入るまで、常に使用していました。しかし、上記のクイズが示すように、不注意な人にとって落とし穴がないわけではありません。両方の構成を使用する人、または多くのor
.
python - この振る舞いをどのように達成できますか?Pythonの「短い循環」テスト
私は次のコードを持っています:
次のことを知っておく必要があります。if条件がtrueと評価された場合、関数はリストの検索を停止し、Falseを返すことはありませんか?または、breakステートメントが必要ですか?
次のコードで問題が解決しない場合、その動作をシミュレートするために何を使用できますか?
ありがとう