I got this:
x,(y,z)=1,*[2,3]
x # => 1
y # => 2
z # => nil
I want to know why z
has the value nil
.
x, (y, z) = 1, *[2, 3]
The splat *
on the right side is expanded inline, so it's equivalent to:
x, (y, z) = 1, 2, 3
The parenthesized list on the left side is treated as nested assignment, so it's equivalent to:
x = 1
y, z = 2
3
is discarded, while z
gets assigned to nil
.