并行赋值是按位置的。
#左侧数量等于右侧数量
a, b = 1, 2
p a, b # 1 2
#左侧数量小于右侧数量
#右侧所有的值会被打包成数组字面量
a = 1, 2, 3
p a # [1, 2, 3]
#右侧多余的值会被忽略
a, b = 1, 2, 3
p a, b # 1 2
#右侧多余的值会被打包成数组字面量
a, b, *rest = 1, 2, 3, 4, 5
p a, b, rest # 1 2 [3, 4, 5]
#左侧数量大于右侧数量
#左侧多余的变量会被赋予nil值
a, b, c = 1, 2
p a, b, c # 1 2 nil
左侧的变量还支持占位语法。
#左侧数量等于右侧数量
a, = 1, 2
p a # 1
#左侧数量小于右侧数量
a, = 1, 2, 3
p a # 1
#左侧数量大于右侧数量
a, = 1
p a # 1
原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/experience/rubyexp/37518.html