問題タブ [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.
c++ - (オーバーロード時に)operator ++のプレフィックス形式とポストフィックス形式を区別する方法は?(C ++)
operator++
イテレータクラスのをオーバーロードしたため
しかし、私がやろうとすると
++
プレフィックス形式を使用して、postifxがないという警告が表示されます。どうすればprefix/postifxフォームを具体的にオーバーロードできますか?
javascript - JavaScript でインクリメント ("++") およびデクリメント ("--") 演算子を避けるのはなぜですか?
ツールのヒントのjslint
1 つは次のとおりです。
++
--
(++
インクリメント) および(--
デクリメント) 演算子は、過度のトリッキーさを助長することにより、悪いコードに寄与することが知られています。それらは、ウイルスやその他のセキュリティの脅威を可能にするという点で、欠陥のあるアーキテクチャに次ぐものです。これらの演算子の使用を禁止する plusplus オプションがあります。
次のような PHP 構造体$foo[$bar++]
がオフバイワン エラーを引き起こしやすいことはわかっていますが、ループを制御するための次の方法よりも優れた方法を見つけることができませんでした。
また
" " と " "の構文がない、または異なる方法で処理するjslint
類似の言語がいくつかあるため、それらを強調表示しているのでしょうか。++
--
++
--
perl - Perlが接尾辞の比較から接尾辞のループを連鎖させないのはなぜですか?
これで結構です:
そしてこれは大丈夫です:
しかし、これはそうではありません:
物事が複雑でなければ、後者は非常に読みやすく、1行に収まります。これを行う方法はありますか、それとも私は自分の人生を続けるべきですか?
c++ - i++は++iよりも効率が悪いのですが、これをどのように表示しますか?
私は例によって、接頭辞の増分が接尾辞の増分よりも効率的であることを示しようとしています。
理論的には、これは理にかなっています。i++は、インクリメントされていない元の値を返すことができる必要があるため、それを格納できますが、++ iは、前の値を格納せずにインクリメントされた値を返すことができます。
しかし、これを実際に示す良い例はありますか?
次のコードを試しました。
私は次のようにgcc4.4.0を使用してコンパイルしました:
接尾辞の増分を接頭辞の増分に変更して、これをもう一度行いました。
結果は、どちらの場合も同じアセンブリコードになります。
これはやや予想外でした。最適化をオフにすることで(-O0を使用)、概念を示すために違いが見られるはずです。私は何が欠けていますか?これを示すためのより良い例はありますか?
c - 接尾辞「_t」はCで何を表しますか?
IDE(Xcode)を入力しているときに、変数名を入力している途中で、オートコンプリートによって定義済みの単語がポップアップ表示されます。_t
末尾に''が付いている名前がときどき表示されます。
それはどのような命名規則であり、それはどういう意味ですか?
一般的に使用されている修正前と修正後を検索するためのリファレンスドキュメントはありますか?
「postfix」という用語で検索すると、同じ名前のメールサーバーに関する多くのGoogleNoiseが得られます。
c# - C#演算子のポストフィックスインクリメントのオーバーロード
日付クラスをコーディングしていますが、後置増分に問題があります (前置増分は問題ないようです)。
サンプルコードは次のとおりです。
メソッド「Next(date d)」は日付を取り、明日の日付を返します (簡潔にするために省略しました)。接頭辞は問題ないが、接尾辞のインクリメントが何もしない理由を理解するには、C#で若いです。しかし、C++ では、接頭辞と接尾辞のインクリメントのために、1 つではなく 2 つのメソッドが必要になることを思い出してください。
また、コンパイル時にエラーや警告はありません。
c - 文字列の終わりを見つける: *s++ VS *s then s++
単純な文字列連結プログラムを書いています。
プログラムは私が投稿した方法で動作します。ただし、最初に次のコードを使用して文字列の末尾を検索するように記述しました。
しかし、その方法はうまくいきませんでした。渡した文字列が正しくコピーされませんでした。具体的には、「\0」を保持する char[] 変数に「abc」をコピーしようとしました。
C K&Rの本を読むと、うまくいくようです。そのコンパクトなフォームは、次の手順を実行する必要があります。
- *s は '\0' と比較されます
- s は次のアドレスを指します
では、なぜうまくいかないのでしょうか。Debian で gcc を使用してコンパイルしています。
このバージョンが機能することがわかりました:
前もって感謝します。
c++ - C++でのプレフィックスとポストフィックスの戻り値
C ++でプレフィックスが参照を返すのに、ポストフィックスが値を返すのはなぜですか?
c++ - 後置インクリメント演算子がダミーパラメーターを取るのはなぜですか?
これらの関数シグネチャを見てください。
Prefix はパラメーターを取りませんが、postfix は受け取ります。なんで?さまざまな戻り値の型でそれらを認識できると思いました。
c++ - C++の接尾辞インクリメント演算子の実装
次の例をコンパイルしました。
cplusplus.com/referenceから、コンパイラの警告が表示されます。
ここで何が問題になっていますか?接尾辞の署名は、myiterator operator++(int)
つまり値で返されることになっていますか?
STLイテレータで後置署名がどのように見えるかがどこかに定義されていますか?