3

次のコードの実行後の変数 a および b の値:

a = 1, 2, 3 
b, = 1, 2, 3

結果は

 a =  [1, 2, 3]
 b =  1

なぜ?

4

3 に答える 3

5

コンマは、Ruby に並列代入を行うと思わせます。ここで、b と別の変数は、次のように同じ式で代入されます。

b, c = 1, 2

結果は b == 1 および c == 2 になります。

ここで、ruby は右側の最初の値を b に代入し、右側の次の値を別の変数に代入することを期待しますが、何も見つからないため、残りの値を破棄します。

于 2012-07-25T01:10:51.713 に答える
2

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

あなたは私が何を意味するか分かります

于 2012-07-25T01:10:17.437 に答える
0

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 です。

于 2012-07-25T13:00:56.070 に答える