新手问题 怎么通过变量 去动态的取得 变量名?

MaiZardAyumi · 2017年03月24日 · 最后由 MaiZardAyumi 回复于 2017年03月24日 · 2759 次阅读

比如我有 3 个数组,a1, a2, a3。要怎么样实现

1..3.each do |i|
   ai.each do |item|
        puts item
   end
end

,就这种动态取得变量的效果

2 楼 已删除
Catherine 回复

额,之前看的镐头书,ruby 基础教程,还有 codecademy 的教程,都没有提到这方面,元编程还没有看。多谢了

直接 eval 吧

a1, a2, a3 = [:a, :b], [:c, :d], [:e, :f]

(1..3).each do |i|
  binding.local_variable_get("a#{i}").each do |e|
    puts e
  end
end

(1..3).each do |i|
  eval("a#{i}").each do |e|
    puts e
  end
end
ecnelises 回复

原来如此简单👌

MaiZardAyumi 关闭了讨论。 03月24日 21:50
需要 登录 后方可回复, 如果你还没有账号请 注册新账号