变量赋值"x,= 1,2"如何在Ruby中工作?

ric*_*res 3 ruby syntax variable-assignment

执行以下代码后变量a和b的值:

a = 1, 2, 3 
b, = 1, 2, 3
Run Code Online (Sandbox Code Playgroud)

结果是

 a =  [1, 2, 3]
 b =  1
Run Code Online (Sandbox Code Playgroud)

为什么?

Mic*_*ael 5

逗号让ruby认为你要进行并行赋值,其中b和另一个变量将通过相同的表达式分配,如下所示:

b, c = 1, 2
Run Code Online (Sandbox Code Playgroud)

结果是b == 1和c == 2.

所以这里ruby将右边的第一个值赋给b,并期望将右边的下一个值赋给另一个变量,但是找不到,所以它会丢弃剩下的值.