問題タブ [assignment-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 投票する
6 に答える
13092 参照

javascript - Javascript文字列代入演算子

どうして+=文字列で使用できるのに使用できないの-=ですか?

例えば...

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

php - PHPの参照代入演算子、=

=&(equals-ampersand)代入演算子はPHPで何をしますか?

非推奨ですか?

0 投票する
4 に答える
5686 参照

c++ - 参照メンバーを持つ内部クラスの既定の代入演算子

理解できない問題に遭遇しました。誰かが洞察を提供してくれることを期待していました。簡略化されたコードは次のとおりです (元のコードはカスタム キュー/キュー イテレータの実装でした)。

これをコンパイルすると、次のエラーが表示されます。

独立した「C」オブジェクトであると想定されているため、2つの個別のC変数を使用してこれを回避できますが、これは問題を隠すだけです(なぜこれができないのかまだわかりません)。

理由は参照をコピーできないためだと思いますが、理由がわかりません。独自の代入演算子とコピー コンストラクターを提供する必要がありますか?

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

c - これは間違っていますか、それとも何かが足りませんか(int count = 10、x;)

本を読んでいるときにこの例に出くわしましたが、私にはまったく意味がありませんでした。おそらく何かが足りないのですが、カウントに値「10」を割り当ててから、値「x」を割り当てているようです。 int。これが有効な構文であるかどうか疑問に思っています。

本はこれを言います:

変数countとxは、通常の方法で整数変数として宣言されます。次の行で、変数intPtrは「intへのポインタ」タイプであると宣言されています。2行の宣言を1行にまとめることができることに注意してください。

これがその元のプログラムです:

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

c++ - わずかに異なるセマンティクスを持つコピーコンストラクタと代入演算子の落とし穴はありますか?

次のコードを見て、将来問題が発生するかどうか、発生する場合は回避する方法を教えてください。

つまり、コピーコンストラクターで、(データベース)IDフィールドを含むオブジェクトの正確なコピーを作成する必要があります。一方、割り当てるときは、データフィールドをコピーするだけです。しかし、通常、copyctorとoperator=のセマンティクスは同じであるため、いくつかの懸念があります。

idフィールドは、Noteとその友人によってのみ使用されます。他のすべてのクライアントの場合、代入演算子は正確なコピーを作成します。ユースケース:メモを編集する場合は、copy ctorを使用してコピーを作成し、編集してから、メモを管理するNotebookクラスでsaveを呼び出します。

一方、既存のメモと同じ内容で完全に新しいメモを作成したい場合は、次のように実行できます。

このアプローチはもっともらしいですか?そうでない場合は、考えられる悪影響を指摘してください。どうもありがとう!

0 投票する
4 に答える
838 参照

php - この場合、PHP 代入演算子が参照による代入として機能するのはなぜですか?

PHP 4 と PHP 5 で動作が異なるように見えるコードがいくつかあります。このコードは次のとおりです。

以前は、PHP 4 では、上記の $foo2 の割り当てにより、$foo2 が $this が最初に設定された値にリセットされていました。この場合、空の $arr メンバーを持つ CFoo に設定されることを期待します。ただし、$foo2 の $this への代入は、参照による代入として機能します。Foo2 はこれに対するエイリアスとして機能しています。したがって、foo2 で「AddToArray」を呼び出すと、$this の $arr も追加されます。したがって、foo2 をこれに再割り当てしようとすると、これの初期値を取得する代わりに、本質的に自己割り当てが行われます。

この動作は PHP 5 で変更されましたか? foo2 にこれのコピーを強制的に作成させるにはどうすればよいですか?

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

equals - 比較演算子として「==」を使用するBASIC方言はありますか?

BASICで育ち、後で別の言語に切り替えた人は、平等をテストするために「(a = b)」ではなく「(a == b)」に慣れるのが非常に困難でした。

割り当てと比較に「=」をオーバーロードするのではなく、比較に「==」演算子を使用するBASICの方言はありますか?または-そして多分これはそれを伸ばしています-この振る舞いを使用するために簡単にハッキングできるかもしれない実装がありますか(パーサーによって認識されるトークンを変更するために?)

これはDOS/Windows / Linuxの実装である可能性があり、ひどく完全な機能を備えている必要はありません。(私はこれを教育目的で使用しています。)

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

r - R の `=` と `<-` の違いは何ですか?

R 2.8.1 を使用していますが、変数代入演算子として=との両方を使用できます。<-それらの違いは何ですか?どちらを使用する必要がありますか?

0 投票する
11 に答える
17448 参照

java - Javaに条件付き演算子と条件付き演算子の複合代入バージョンがないのはなぜですか?(&& =、|| =)

したがって、ブール値の二項演算子の場合、Javaには、、、、および&があります。|^&&||

ここで彼らが何をしているのかを簡単に要約しましょう:

の場合&、結果の値はtrue、両方のオペランド値がtrue;の場合です。それ以外の場合、結果はfalseです。

の場合|、結果の値はfalse、両方のオペランド値がfalse;の場合です。それ以外の場合、結果はtrueです。

の場合^、結果の値はtrue、オペランド値が異なる場合です。それ以外の場合、結果はfalseです。

&&演算子は似&ていますが、左側のオペランドの値が。の場合にのみ右側のオペランドを評価しますtrue

||演算子はに似|ていますが、左側のオペランドの値が。の場合にのみ右側のオペランドを評価しますfalse

現在、5つすべてのうち、3つには複合代入バージョン、つまり、、|=およびが&=あり^=ます。だから私の質問は明白です:なぜJavaは同様に提供&&=しないのですか?||=必要以上に必要だと思い&=ます|=

そして、Javaにはがありますので、「長すぎるため」は良い答えではないと思います>>>=。この省略にはもっと良い理由があるに違いありません。


15.26代入演算子から:

12個の代入演算子があります。[...]= *= /= %= += -= <<= >>= >>>= &= ^= |=


&&=||=が実装された場合、最初に右側を評価しないのはそれだけであるというコメントがありました。複合代入演算子が最初に右側を評価するというこの概念は誤りだと思います。

15.26.2複合代入演算子から:

フォームの複合代入式は、E1 op= E2と同等ですE1 = (T)((E1) op (E2))。ここTで、はのタイプですが、 1回だけ評価されるE1点が異なります。E1

NullPointerException証拠として、次のスニペットは、ではなく、をスローしArrayIndexOutOfBoundsExceptionます。