複数の変数に同じ値を代入する(同時代入)
下記URLに移転しました。
5秒後に自動的にリダイレクトします
背景
複数の値に同時に代入したいことがたまにある。
(その行為が妥当かどうなのかは置いておいて)
普通に
a = 0; b = 0;
とすればよいのだけれど、 どうせならもっとスマートな書き方を知っておこうということで調べてみた結果をまとめる。
結論
a = b = 0;
どの言語もだいたい上記のような書き方で宣言できる。
「代入」はそもそも「式」なので、一文で記入した場合、右から評価される。 それゆえ、このような書き方ですべての変数に代入することが可能となる。
言語ごとの違い
C / C++ / C# / Objective-C
int a,b; a = b = 0;
int a = 0, b = 0;
※ 以下のようにすると、bにのみ0が代入される
int a, b = 0;
JavaScript
var a = b = 0;
※ 上記の場合、aはローカル変数、bはグローバル変数となる
PHP
<? php $a = $b = 0;
Python
// マルチターゲット代入 a = b = 0; // アンパック代入 a, b = 0, 0; a, b = 1, 2; // ※
※アンパック代入では一括で違う値も代入可能(さすが)
VBA
無理
他にもわかったら追記します