次のコードの実行後の変数 a および b の値:
a = 1, 2, 3
b, = 1, 2, 3
結果は
a = [1, 2, 3]
b = 1
なぜ?
次のコードの実行後の変数 a および b の値:
a = 1, 2, 3
b, = 1, 2, 3
結果は
a = [1, 2, 3]
b = 1
なぜ?
コンマは、Ruby に並列代入を行うと思わせます。ここで、b と別の変数は、次のように同じ式で代入されます。
b, c = 1, 2
結果は b == 1 および c == 2 になります。
ここで、ruby は右側の最初の値を b に代入し、右側の次の値を別の変数に代入することを期待しますが、何も見つからないため、残りの値を破棄します。
ruby の Parallel Assignment です。
a = 1, 2, 3
は、配列[1, 2, 3]
をに配置することを意味しa
ます。
b, = 1, 2, 3
は 1 をb
に、2 を ? に置くことを意味します。および 3 ~ ?。試してみると
b,c,d = 1,2,3
あなたは私が何を意味するか分かります
Ruby では、並列代入を行うことができます。例: a, b = 1, 2 は、a == 1 および b == 2 を意味します。この例では: a, b, = 1, 2, 3. a == 1 および b == 2 で、変数はありません。値 3 を割り当てます。この例では、a、b = 1、a == 1、b は nil です。