(我只编写了几周,这是我的第一个问题,所以请耐心等待!)
在ruby中,我知道你可以在一行上初始化多个变量,如下所示:
a, b = 1, 2
Run Code Online (Sandbox Code Playgroud)
但是,我想知道是否可以在一个也生成其名称的循环中初始化多个变量.这是一些解释我的意思的伪代码:
For X between 0 and 3, even_X = X * 2
Run Code Online (Sandbox Code Playgroud)
这将设置even_0 == 0,even_1 == 2,even_2 == 4,和even_3 == 6.
我意识到通过迭代创建一个数组然后调用它的成员可以实现相同的功能,但我仍然很好奇是否有办法做到这一点.
谢谢!
有一种方法,使用eval,但你宁愿不想使用它(我甚至会走得那么远,说最好不要在以后学习它).
根本不存在使用它而不是普通数组的情况.
对于您的示例,应该使用类Range和方法map:
(0..3).map{|i| i * 2}
#=> [0, 2, 4, 6]
Run Code Online (Sandbox Code Playgroud)
你可以看到这已经完成而没有声明任何变量 - 甚至i在传递给的块内是活着的map.之后它不存在.
| 归档时间: |
|
| 查看次数: |
2415 次 |
| 最近记录: |