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)
为什么?
逗号让ruby认为你要进行并行赋值,其中b和另一个变量将通过相同的表达式分配,如下所示:
b, c = 1, 2
Run Code Online (Sandbox Code Playgroud)
结果是b == 1和c == 2.
所以这里ruby将右边的第一个值赋给b,并期望将右边的下一个值赋给另一个变量,但是找不到,所以它会丢弃剩下的值.