問題タブ [operator-precedence]
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.
c - C#defineマクロ
これが私が持っているものであり、これがどのように機能し、実際に何をするのか疑問に思います。
26と30の2つの整数を生成します。
それはどのようにそれをしますか?
c# - メソッドの優先順位は?
2 つの方法があるとします。1 つは、リストボックスで選択されたインデックスの変更によってトリガーされるメソッドです。2 番目の方法は、すべてのテキスト ボックスをクリアし、リスト ボックスのインデックスを -1 に設定し、フォーカスを設定することで役立ちます。
質問:
メソッド 2 が実行され、コード中にリストボックスの選択されたインデックスが -1 に変更され、それによって最初のメソッドのイベント トリガーが設定されます。方法 2 はそれ自体の実行を停止し、プロセスをイベントに転送し、方法 1 が終了した後に作業に戻りますか? または、方法 2 はコードブロック全体を終了し、選択したインデックスが変更されたため、方法 1 に転送しますか?
c++ - C++でのコンパイラと評価の引数の順序
さて、標準ではC ++実装が関数の引数を評価する順序を選択できることを知っていますが、実際にプログラムに影響を与えるシナリオでこれを実際に「利用」する実装はありますか?
古典的な例:
注:評価の順序は信頼できないと言ってくれる人を探しているわけではありません。私はそれをよく知っています。私が興味を持っているのは、コンパイラーが実際に左から右の順序で評価するかどうかだけです。なぜなら、コンパイラーが多くの不適切に記述されたコードを実行すると、壊れてしまうからです(もちろんそうですが、おそらく文句を言うでしょう)。
c++ - 短絡論理演算子は義務付けられていますか? そして評価順?
ANSI 標準は、C または C++ のいずれかで、論理演算子を短絡することを義務付けていますか?
K&R の本で、これらの操作がショート サーキットされていることにコードが依存するべきではないと書かれていることを思い出して、私は混乱しています。論理演算が常に短絡されていると言われている標準のどこを誰かが指摘できますか? 私は主に C++ に興味があります。C の答えも素晴らしいでしょう。
また、評価順序が厳密に定義されていないことを読んだことを覚えています (どこを思い出せないか)。そのため、式内の関数が特定の順序で実行されることをコードに依存させたり、想定したりしないでください。ステートメントの終わりまでに、参照されているすべての関数が呼び出されますが、コンパイラは最も効率的な順序を自由に選択できます。
標準は、この式の評価順序を示していますか?
ruby - この連結での操作の順序は何ですか?
これは機能し、2つの文字列をシンボルに連結して、次の出力を生成できます。
しかし、helloとworldの文字列を区切るスペースの代わりに+を使用するように少し変更すると、エラーが発生します。
これにより、次のエラーが発生します。これは、「hello」文字列に連結する前に、「world」.to_symコールバックを文字列に「キャスト」しようとしているためだと思います。
何が最初の例を機能させるのか疑問に思いますか?ここでの操作の順序を知っている人はいますか?2つの文字列は実際には1つとして扱われ、それらの間のスペースは無視され、to_symメソッドが呼び出される前に連結されていると思われます。「hello」と「world」のコンテンツを結合しようとする前に、to_symが「world」文字列で呼び出されると思ったので、実際には2番目の例と同じように機能することを期待していました。
javascript - javascriptの&&および==の演算子の優先順位は重要ですか?
より具体的には、ステートメント内で演算子の優先順位が重要になる一連の値 (a、b、および c) があります。
(NaN を除く)。
prolog - Prolog 演算子の優先順位とルールの一致
次の 2 つのファクトをプロローグ インタープリターにロードしました。
次に、その結果で次のクエリを試します。
次に、次のクエリを試します。
私が理解しているように、これは演算子の優先順位がツリー式を構築する方法によって説明されます。
この説明は正しいですか?
ruby - ルビースプラット演算子を使用するのはどこで合法ですか?
スプラットはクールです。それは楽しいですが、それらは配列を爆発させるためだけのものではありません。また、配列にキャストして配列をフラット化することもできます (機能の完全なリストについては、 http: //github.com/mischa/splat/tree/masterを参照してください)。
スプラットで追加の操作を実行できないように見えますが、1.8.6/1.9 では次のコードで「予期しない tSTAR」がスローされます。
foo = bar || *zap #=> unexpected tSTAR
これは機能しますが:
foo = *zap || bar #=> works, but of limited value
感嘆符は式のどこに表示できますか?
c - C の '++' および '->' 演算子を含む式の評価を理解する
次の例を検討してください。
印刷し1
ます。
したがって、演算子の優先順位によると、->
が よりも高い++
ため、最初に値ps->num
(0) がフェッチされ、次に++
演算子がそれを操作するため、1 にインクリメントされるためだと理解しています。
この例では0
、理由がわかりません。最初の例の説明は、この例でも同じです。しかし、この式は次のように評価されるようです:最初
に、演算子++
が動作し、 に動作するps
ため、次の にインクリメントしますstruct
。それからのみ動作し、次のフィールドを->
フェッチするだけで何もしないため、何もしません。
しかし、これは演算子の優先順位と矛盾しています。num
struct
->
++
誰かがこの動作を説明できますか?
編集:プレフィックス/演算子の優先順位が よりも低い
ことを示す C++ 優先順位テーブルを参照する 2 つの回答を読んだ後、グーグル検索を行い、このルールが C 自体にも適用されることを示すこのリンクを思いつきました。それは正確に適合し、この動作を完全に説明していますが、このリンクの表は、K&R ANSI C の私自身のコピーの表と矛盾していることを付け加えなければなりません。++
--
->
ありがとう。