执行以下代码后变量a和b的值:
a = 1, 2, 3
b, = 1, 2, 3
结果是
a = [1, 2, 3]
b = 1
为什么?
答案 0 :(得分:5)
逗号让ruby认为你要进行并行分配,其中b和另一个变量将通过相同的表达式分配,如下所示:
b, c = 1, 2
结果是b == 1和c == 2.
所以这里ruby将右边的第一个值赋给b,并期望将右边的下一个值赋给另一个变量,但是找不到,所以它会丢弃剩下的值。
答案 1 :(得分:2)
这是ruby的并行分配。
a = 1, 2, 3
表示将数组[1, 2, 3]
添加到a
。
b, = 1, 2, 3
表示将1添加到b
,将2添加到?和3到?如果你试试
b,c,d = 1,2,3
你明白我的意思
答案 2 :(得分: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