問題タブ [compound-assignment]

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 投票する
2 に答える
1534 参照

c - 複合ステートメントはCの左辺値(または右辺値)ですか?

Linuxカーネルでマクロの定義を調べたところ、container_of複合ステートメントがマクロ定義であることがわかりました。

しかし、私の頭の中の不明確な問題は、どのステートメントが右辺値として考慮されるかということです。どうやら最後のステートメントの結果が右辺値として使用されていますが、なぜですか?

たとえば、以下のコード例はCで合法ですか?

複合ステートメントの変数の割り当てルールは何ですか?

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

c# - C#複合代入(例:+ =、-=など)「例外」

私はC#に関する本を読んでいますが、複合割り当てについて次のように述べています(たとえば、+ =、-=、* =、/ =、<< =、>> =):

このルールの微妙な例外は、第4章で説明するイベントの場合です。ここでの+ =および-=演算子は特別に扱われ、イベントの追加および削除されたアクセサーにマップされます。

誰もがそれが何を意味するのかを平易な英語で説明できますか?私はまだ第4章に行きません。

0 投票する
5 に答える
15381 参照

java - Javaブール値|=演算子

最近、私はこれを使用するコードを見ました:

興味深い部分は、ブールプリミティブ型で作成された| =(バイナリのような)演算子です。

整数型のようにブール値の|=が存在し、Java仕様でこの演算子を検索したのに驚いたのですが、見つかりませんでした。

左の値がすでに真である場合に右のオペランドが評価されるかどうか知りたいです。

誰かが私にこれのJava仕様を教えてもらえますか?

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

c++ - 複合代入の結果を左辺値として使用する

これが機能することに驚いています:

結果は 8 で、プログラマーが達成しようとしているように見えます。しかし、代入演算子は右辺値を返すと思っていました-どのようにして右辺値の結果に代入できるのでしょうか?

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

language-agnostic - 複合代入演算子、値が (その間に) 変更されるとどうなりますか?

次の擬似コードを検討してください (言語に依存しません)。

の評価中に関数fが変化したときy(つまり) 、元の値が「凍結」されて「失われた」に変化しますか?vv += f(v)vv

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

java - 式でのJava複合代入演算子の優先順位

これを実行しようとすると、次のコードの出力は "6" として宣言されます。

これを考えてみると、「k += 3 + ++k;」という式は、k = k + (3 + ++k); と評価されるべきでしたが、この場合、出力は 7 になるはずでした。 k = k + 3 + ++k; と評価されたように、結果は 6 になりました。

式が " k + (3 + ++k); ではなく "k + 3 + ++k" と評価された理由を誰か説明してもらえますか?

}

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

lua - Lua 演算子、なぜ += や -= などが定義されていないのですか?

これは、私がしばらくイライラしてきた質問であり、答えを探すことができませんでした.

しかし、私は少なくとも質問をするかもしれないし、おそらく誰かが説明できると思った.

基本的に、私が取り組んできた多くの言語は、シンタックス シュガーを利用して記述します (C++ の構文を使用):

一方、lua では+=は定義されていないため、 を記述する必要がありますがa=a+3、これもすべて構文糖衣に関するものです。次のようなより「意味のある」変数名を使用する場合、bleed_damage_over_timeまたは書くのが面倒になり始めるもの:

それ以外の:

したがって、良い解決策がない場合は、これを解決する方法を知りたくありません。その場合、もちろんそれを聞くことに興味があります。むしろ、lua がこの構文糖衣を実装しない理由です。

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

c++ - bool a |= mayRun(); の右側の式はいつですか? 実行中?

コードスニペットを想定

mayRun() が実行されているのはどの場合ですか?

すべての説明が教えてくれます a |= b;a = a | b;

ただし、例が示すように同じにすることはできません arr[i++] |= b;