我想在Ruby中“爆炸”一个数组,以便进行快速变量赋值,即
a, b = ['first_var', 'second_var']
这可能吗?我查看了数组文档,找不到任何似乎提供此功能的东西,但它似乎是Rubyish ......
答案 0 :(得分:4)
这可以像您期望的那样工作。请注意,您可以使用*
来填充额外的右侧元素,而左侧的额外元素将设置为nil
:
>> range = *1..10 #=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>> a, b = range #=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>> [a, b] #=> [1, 2]
>> a, *b = range #=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>> b #=> [2, 3, 4, 5, 6, 7, 8, 9, 10]
>> a, b, c = 1,2 #=> [1, 2]
>> c #=> nil