我明白了:
x,(y,z)=1,*[2,3]
x # => 1
y # => 2
z # => nil
我想知道为什么 z
的值为 nil
。
最佳答案
x, (y, z) = 1, *[2, 3]
右侧的 splat *
是内联扩展的,所以它等同于:
x, (y, z) = 1, 2, 3
左边带括号的列表被视为嵌套赋值,所以它等价于:
x = 1
y, z = 2
3
被丢弃,而 z
被分配给 nil
。
关于ruby - 带括号和 splat 运算符的并行赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30678698/