問題タブ [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.
java - Javaがショートカット演算子を使用して操作を実行する方法に、通常のものとの違いはありますか?
私はパスカルの三角形に関する Java プログラムに取り組んでいます。
したがって、これはコード化されている方法です:
1
1
1
1 2 1
1 3 3 1
1 4 6 4 1
しかし、コードを次のように変更しようとしたとき:
お気づきかもしれませんが、演算子のみが *= に変更されていますが、結果は次のようになります。
1
1 1
1 2 0
1 3 3 0
1 4 4 0 0
何が起こったに違いないのですか?前もって感謝します!
arrays - PowerShell の -f 演算子の RHS はどのように *正確に* 機能しますか?
前回、 PowerShellが熱心にコレクションをアンロールする方法に戸惑いましたが、Keith はそのヒューリスティックを次のようにまとめました。
結果 (配列) をグループ化式 (または $() などの部分式) 内に配置すると、再度展開できるようになります。
私はそのアドバイスを心に留めていますが、それでもいくつかの難解なことを説明することはできません. 特に、Format オペレーターはルールに従っていないようです。
前の質問で見たのと同じパターンを適用すると、#1 と #5 のようなケースが異なる動作をする理由は明らかです。パイプライン オペレーターはスクリプト エンジンに別のレベルをアンロールするように信号を送りますが、割り当てオペレーターはそうしません。別の言い方をすれば、2 つの | の間にあるものはすべて、() の中にあるかのように、グループ化された式として扱われます。
同じ理由で、ケース #7 は #5 よりも改善されていません。余分なラップを追加しようとすると、余分なパイプによってすぐに破壊されます。同上 #8 vs #6。少しイライラしますが、私はこの時点まで完全に参加しています。
残りの質問:
- ケース #3 が #4 と同じ運命をたどらないのはなぜですか? $rhsはネストされた配列(,("a", "a"))を保持する必要がありますが、その外側のレベルは展開されています...どこか...
- #9-10 のさまざまなグループ化演算子で何が起こっているのでしょうか? なぜ彼らはそんなに不規則に振る舞うのですか、そしてなぜ彼らは必要なのですか?
- #10 の場合の障害が #4 のように正常に劣化しないのはなぜですか?
c++ - メンバー アクセスの違い
(*ptr).field
との違いは何ptr->field
ですか?どういうわけか静的リンクと動的リンクに接続していることは知っていますが、それが何であるかはわかりません。誰かが私に違いを教えて、例を教えてもらえますか?
編集:このコードがある場合:
TNX!
c++ - C++ で評価される && (and) 演算子のどちら側 (左または右)
and && 演算子が評価される順序はどれですか
たとえば、次のコード
アルファが開始されずに使用されているという例外をスローしました。&& の左側の式は常にアルファの値を最初に開始すると思っていましたが、間違っているようです
何か案が?
ありがとう
java - Java 演算子の優先順位のガイドライン
c# - C#ジェネリックメソッドのオーバーロードは、抽象的なビジターパターンと一致しません
ビジター パターンとジェネリック メソッドを試してみたところ、C#.NET にある種の不一致が見つかりました。AFAIK C# コンパイラは、ジェネリック メソッドよりも明示的なオーバーロードを優先するため、次のコードは次のようになります。
生成される出力は (予想どおり) です。
ただし、この Visitor パターンの実装では、Visitor クラスを交換できません。抽象クラス VisitorBase を導入し、呼び出しをオーバーロードに転送すると、smth が生成されます。私には予想外……。
出力は次のようになります。
ジェネリック メソッドはジェネリック メソッドのみを優先しますか? 明示的なオーバーロードが呼び出されないのはなぜですか?
java - Javaでのパラメータ保証の実行順序は?
次の関数呼び出しがある場合C
:
barFunc
およびの実行順序はBazFunc
指定されていないため、の前または前にbarFunc()
呼び出すことができます。bazFunc()
bazFunc()
barFunc()
C
Java
関数の引数式などの実行順序を指定していますか?指定されてC
いませんか?
sql - SQL UPDATE の評価順序
次のクエリでの評価の順序は何ですか:
つまり、または?"tbl"."p"
に設定されます。ここでの評価の順序は SQL 標準によって管理されていますか?q
q + 1
ありがとう。
アップデート
Migs の回答を検討した後、見つけたすべての DB でいくつかのテストを実行しました。標準の内容はわかりませんが、実装はさまざまです。
与えられた
"p"
との値"q"
は次のとおりです。
更新 2
Firebird 2.5 は、私がテストした他の SQL エンジンの大部分と一致するように動作を変更し、MySQL だけを残しました。関連するリリース ノートのエントリ「SET 句のロジックの変更」は、大多数の動作が SQL 仕様に従って正しいことを強く示唆しています。
MySQL にバグを報告して、この動作についてコメントしてもらいました (バグ番号52861 )。
更新 3
前述のバグは本日 (2010-05-19) クローズされ、 UPDATEの説明と標準 SQL との相違点のセクションの両方でこの動作が明示されるようにドキュメント セットが更新されます。
ブラボー、MySQL。
c++ - string::append 操作の動作がおかしいのはなぜですか?
次の簡単なコードを見てください。
出力はどうなると思いますか?
あなたは、私のように、それが次のようになることを期待しますか?
違う!それは:
つまり、最初の文字列は空です。
インクリメント演算子をプレフィックスとする継ぎ目は、イテレータで問題があります。または私は何かを逃していますか?
java - Javaでは、ブール値の「操作の順序」は何ですか?
object の簡単な例を見てみましょうCat
。cat
「not null」がオレンジ色または灰色であることを確認したい。
AND が最初に来て、次に OR が来ると思います。私はちょっとあいまいなので、ここに私の質問があります:
何が起こるか確実に理解できるように、誰かがこの声明を順を追って説明してもらえますか?
また、括弧を追加するとどうなりますか。それは操作の順序を変更しますか?
操作の順序は言語ごとに変わりますか?