我有一些变量,比如
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
答案 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
)