将值数组分配给变量数组

时间:2018-05-29 10:31:53

标签: ruby local-variables

我有一些变量,比如

a,b,c = [10,20,30]

values = [1, 2, 3]

并将变量a,b,c分配给d,如下所示

d = [a,b,c]

有没有办法在没有迭代的情况下为变量赋值,比如 d = values以便我得到以下内容?

a = 1,b = 2,c = 3

1 个答案:

答案 0 :(得分:5)

使用

a,b,c = values
a #=> 1
b #=> 2
c #=> 3

更新部分: 拥有d = [a,b,c]并考虑分配d = values并期望a,b,c进行更改不会起作用,因为d = [a,b,c]是一项分配,d设置为{ {1}}。

可能这样的事情可能有助于理解如何实现这一目标:

a,b,c = [10,20,30]

[10,20,30]
在上面的例子中,

values = [1,2,3] d = -> (x) { a, b, c = x } a #=> 10 b #=> 20 c #=> 30 d.call values a #=> 1 b #=> 2 c #=> 3 d,它们被命名为block,可以在以后调用。它们与当前范围中的变量绑定,因此它们可以在调用时通过lambda

更改它们