Nav*_*mar 0 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
使用
a,b,c = values
a #=> 1
b #=> 2
c #=> 3
Run Code Online (Sandbox Code Playgroud)
对于更新的部分:拥有d = [a,b,c]并考虑分配d = values和期望a,b,c进行更改将不起作用,因为d = [a,b,c]是一个赋值,d设置为[10,20,30].
可能这样的事情可能有助于理解如何实现这一目标:
a,b,c = [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
Run Code Online (Sandbox Code Playgroud)
d在上面的例子中是a lambda,它们被命名为block,可以在以后调用.它们与当前范围中的变量绑定,因此它们可以在调用时更改它们(by d.call)
| 归档时间: |
|
| 查看次数: |
123 次 |
| 最近记录: |