标签: ruby parallel-assignment
我明白了:
x,(y,z)=1,*[2,3] x # => 1 y # => 2 z # => nil
我想知道为什么z的值为nil。
z
nil
答案 0 :(得分:9)
x, (y, z) = 1, *[2, 3]
右侧的图例*是内联展开的,因此它等同于:
*
x, (y, z) = 1, 2, 3
左侧的括号列表被视为嵌套赋值,因此它等同于:
x = 1 y, z = 2
3被弃用,z被分配给nil。
3