a = [ 'a' ]
b = [ 'b' ]
def c
return [ 'c' ], [ 'd' ]
end
a, b += c # -> would be awesome, but gives syntax error
a, b = a + c.first, b + c.last # clunky and will call method twice...
# desired result
#
a == [ 'a', 'c' ]
b == [ 'b', 'd' ]
现在我经常发现自己在写:
t, tt = c
a += t
b += tt
但如果你问我,那有点难看。
编辑:单元素数组似乎让一些人感到困惑,因为下面的几个答案只是没有回答这个问题。通过让每个数组至少有 2 个元素,我更清楚地说明了这一点。
Edit2:我向 ruby 核心提交了一个功能请求,以在解构数组上实现复合分配。