5

我懂了:

x,(y,z)=1,*[2,3]

x # => 1
y # => 2
z # => nil

我想知道为什么z有值nil

4

1 回答 1

9
x, (y, z) = 1, *[2, 3]

*右侧的 splat是内联展开的,所以它相当于:

x, (y, z) = 1, 2, 3

左侧带括号的列表被视为嵌套赋值,因此相当于:

x = 1
y, z = 2

3被丢弃,而z被分配给nil.

于 2015-06-06T03:52:11.570 回答