ie-developers / ie-questions

public questions for ie students.
10 stars 0 forks source link

evalではまった。 #24

Closed kazuminn closed 9 years ago

kazuminn commented 9 years ago

ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-darwin14.0] os x yosemite

動的にhoge、piyo変数を宣言してそれを配列にしたかったが 配列後のeachができなくてハマっています. なぜなら、下記の#####の部分がが自分の知識では動的にhoge,piyoと書けないから

["hoge","piyo"].each do |x|
  plus = "@" + x
  eval('#{plus} = [1,1,1,1,1]')

  #####.each do |i|
    print i + i
  end
end

動的に#####をhoge,piyoにしたいのですが、どうすればよろしいでしょうか?

kazuminn commented 9 years ago

issue書きましたー

hanachin commented 9 years ago

eval('#{plus} = [1,1,1,1,1]')

''の中では式展開されません

eval("#{plus} = [1,1,1,1,1]")
kazuminn commented 9 years ago

なるほど。 " "にしたのですが

の部分の書き方がわかんないです。><
hanachin commented 9 years ago
# えばる
eval(plus).each do |i|
  print i + i
end

# インスタンス変数にいれてるなら`instance_variable_get`で取れる
instance_variable_get(plus).each do |i|
  print i + i
end
kazuminn commented 9 years ago

なるほど。なるほd。 問題は、解決しました。^^

回答、ありがとうございました。