問題タブ [postfix-operator]

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 に答える
113 参照

python - 学習後置

このサイトで後置を調べていたときに、中置接頭辞と後置の定義の後、完全に言うように後置を適用する方法のルールを説明しているので、私は混乱しています:彼らが取り組んでいること。一方、Postfix では、対応するオペランドの後に演算子を配置する必要があります。

例:

A + B * C = 通常使用 (インフィックス)

A + B * C = これをプレフィックスに変換したい場合は、すべての演算子を、それらが作用する 2 つのオペランドの直前に移動する必要があります。つまり、+ は A の前に来て、* は B の前に来ます。
+ A * BC = プレフィックス

A + B * C = これを接尾辞に変換したい場合は、演算子が作用する 2 つのオペランドの直後に演算子を移動する必要があります。つまり、+B の後に来て、* は C の後に来ます。規則によれば、次のようになります。 : AB + C *しかし、例では次のようになっています:
ABC * + = Postfix。

どこが間違っているのか説明してください。

前もって感謝します

--
よろしく
プラディープ

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

c - Postfix ++ 演算子が While 条件内で期待どおりに動作しない

Brian Kernighanの「C プログラミング言語演習 1-19の簡単な解決策を書きました。これは、文字列を逆にします。reverse(char[])機能は以下のとおりで、すべて問題ありません。

ただし、while ループ内で後置インクリメント (++) 演算子を使用すると、関数は失敗します。

唯一の違いは、while ループ内で変数lenをインクリメントする代わりに、後置 ++ 演算子を使用したことです。これは、「インクリメントが終了したら、条件付きチェックに古い値を使用する」という動作が期待されるはずです。

期待どおりに動作しないのはなぜですか。どこが間違っているのですか? Windows 10 Mingw/gcc コンパイラーでコンパイルしています。これがテストコード全体です。

テストコード

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

java - 他の操作が含まれていない場合の接頭辞と接尾辞の増分?

対。

前置インクリメントの使用または後置インクリメントの使用は、指定された 2 つのステートメントに違いをもたらしますか?

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

scala - なぜしない; eolに相当しますか?

意図したとおりにコンパイルされるコードは次のとおりです

そしてそうでないもの

唯一の違い;sum.

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

java - Javaで同時に単項演算子の接尾辞と接頭辞

平易な英語での私の質問: なぜこれが機能するのかsomeObject.methodReturnsInteger().getClass()(私は実際にはメソッドを意味するのgetClassではありません。Integer で機能するメソッドに過ぎません。具体的には Integer を返すメソッドを意味するわけではありません。) しかし、これは機能しません++a++

言い換えれば、なぜ (またはどのように) 解析 (またはトークン化) すると、最初の戻り値の使用が許可され、2 番目の戻り値の使用が許可されないのでしょうか? つまり、後者を次のように解析して(++a)++、戻り値を++a数値として使用するべきではありませんか?

同じことが次のようなものにも当てはまります。a+++++b

質問が十分に明確であることを願っています。

お時間をいただきありがとうございます。

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

perl - 接尾辞またはカスタム後置演算子の Perl カスタム構文

このような操作を実行する方法を知りたい

それらをコンパイルします。私は彼らの結果が何であるか、またはそれがどのように実装されているかについてうるさいわけではありません. 私の目標は、従来の後置単位注釈を使用した物理量の式を、それらの単位の perl 式にコンパイルできるようにすることです。

カスタムの解析手法を使用する必要があると思いますが、生のソースに正規表現フィルターを適用するだけでなく、既存の機能や解析モジュールを使用することをお勧めします。

Parse::Keywordは有望に思えましたが、後置操作を解析できるかどうかはわかりません。また、非推奨であると主張しています。

編集: Perl の構文上のコーナー ケース ("25 (J/K)" など) の正規表現を書きたくないので、可能であればソース フィルターを避けたいと思います。

ここで Perl が生成するエラーは次のことを示しています。

Perl が数値リテラルの後に演算子を検出する場所にフックする必要があるようです。

Devel::Declareは後置演算子を追加できますか? もしそうなら、どのように?

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

c# - C# での前置および後置演算子のオーバーロード

次のコードには、次のコードに示すように、後置/前置インクリメント ステートメントの割り当てによって行われる予期しない参照に関する実行時の問題があります。また、C# でオブジェクトを値の型として扱う方法があれば、誰かが私に提案してくれませんか?

コードは、各重要な状態を明確にするコメントで十分に文書化されていると思います。コードの明確化や当面の問題に関する質問はお気軽にどうぞ。

前もって感謝します。

0 投票する
0 に答える
654 参照

parsing - バイナリの前置、中置、および後置演算子を使用した式の解析

バイナリプレフィックス、バイナリインフィックス、およびバイナリポストフィックス演算子 (すべてのシンボルが異なると仮定します) を含む式を (あいまいさなしで) 解析することは可能ですか? 例えば:

その後、後置演算子よりも優先順位が低く、 になるaため、5 に等しくなります。中置表記式を演算子の優先順位解析またはシャントヤードで解析できることは知っていますが、この問題は私にとってははるかに複雑に思えます。=post+b14

編集:

括弧は許可されており、演算子の前後のバリエーションは中置のものと同じ優先順位を持ちます。

手書きのアルゴリズムを転がしたいと思います。

編集2:

優先的に、私は消費する量を意味します。たとえば、次のようになります。

次の AST が発生する可能性があります。

(2番目は、この状況で必要なものです)。演算子が動的に読み込まれるため、既存のパーサー ジェネレーターや固定文法をオペランドに実際に使用することはできません。