回答
这取决于它是local variable还是method。 send "k#{i}"
应与方法做的伎俩:
class Foo
attr_accessor :i, :k1
def get
send "k#{i}"
end
end
foo = Foo.new
foo.i = 1
foo.k1 = "one"
foo.get
# => "one"
如果你真的需要,你可以使用当前Binding
和local_variable_get
访问本地变量:
i = 1
k1 = "one"
local_variables
# => [:i, :k1]
binding.local_variable_get("k#{i}")
# => "one"
这是很可怕,但。在这种情况下,您最好使用Hash
:
i = 1
k = {1 => "one"}
k[i]
# => "one"
eval对我很好。我会记住你使用哈希的建议。 – 2012-04-17 01:34:33
但是,如果你有数据库列,如... – 2012-04-17 01:34:57
column1 column2 column3 ...,你想要在循环内调用它们,你会怎么做? – 2012-04-17 01:35:26
- 1. 红宝石插值到变量
- 2. 命名变量的PostgreSQL红宝石轨
- 3. Lua的红宝石对象_变量名
- 4. 使用JavaScript变量红宝石代码
- 5. 红宝石使用范围变量?
- 6. 如何使用JavaScript变量红宝石
- 7. 红宝石。变量权限
- 8. 红宝石会话变量
- 9. 红宝石变量澄清
- 10. 红宝石范围变量
- 11. 红宝石宝石与Acroynym在名称
- 12. 能够在另一个变量的名称中使用变量吗?红宝石
- 13. 红宝石插值
- 14. 变量改变值,红宝石
- 15. 转换JavaScript变数红宝石变量
- 16. 红宝石 - 可变
- 17. 红宝石:常量
- 18. 使用红宝石
- 19. 使用红宝石
- 20. 使用红宝石
- 21. 红宝石宝石知名度
- 22. 使用!在红宝石
- 23. 使用!在红宝石
- 24. 红宝石使用GSUB串插内
- 25. 红宝石klout宝石包括变化
- 26. 红宝石散列在红宝石
- 27. 在红宝石宝石中使用不同的宝石依赖
- 28. 变化克隆在红宝石1.9.2.p290或红宝石1.9.3
- 29. 红宝石一次分配变量
- 30. 红宝石苗条 - 类从变量
这可能与“eval”但不这样做。这是一个糟糕的编程,海事组织。 – yazu 2012-04-17 01:18:26
为什么会这样?我是编程新手。请赐教。 – 2012-04-18 02:10:41
我的英语不是很好,但我会尝试。 1)评估是不安全的。 2)你真的想要使用一个数组。 3)符号引用(它是一个真正的符号引用 - 保留另一个变量名称的变量)很难读取,维护和调试。 4)这违反了很多编程原则 - 命名空间,封装等。 – yazu 2012-04-18 04:28:00