最近 java の本を読んでいる。
意外な仕様がいろいろあって面白い。
で。
最初に取り上げるのは、左辺値は変数か配列というルール。
int main() { int a=0, b=1; ( true ? a : b ) = 3; printf( "%d\n", a ); // 3 を出力 }
まああんまりこんなことを書く人はいないわけだが、私は仕事で書いたことがある。
ような気がする。
同じことを java でやろうとすると:
// クラス省略 public static void main(String[] args) { int a=0, b=1; ( true ? a : b )=3; // エラー「代入の左側は変数でなければなりません。」 System.out.println(a); }
エラー。
ちょっと残念。