- ベストアンサー
Ruby evalで代入
#!/usr/bin/ruby str='hoge="abc"' eval(str) puts hoge 上記実行の結果エラーになってしまいますが、 evalを使って変数に代入するの方法ってあるのですか?
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (5)
- sakusaker7
- ベストアンサー率62% (800/1280)
回答No.6
- sakusaker7
- ベストアンサー率62% (800/1280)
回答No.5
- himajin100000
- ベストアンサー率54% (1660/3060)
回答No.3
- koko_u_
- ベストアンサー率18% (459/2509)
回答No.2
- himajin100000
- ベストアンサー率54% (1660/3060)
回答No.1
補足
ご回答ありがとうございます。 >何のためにそういうことをしたいのかを説明してもらえれば、代替策を >提示できるかもしれません。 #!/usr/bin/ruby class Foo def g "g" end def p "p" end end f=Foo.new str="g" eval("ret=f.#{str}") puts ret 上記の様に、変数strの内容によってメソッドを変える式を条件分岐文を使わずに書きたかったのですが、以下の様に書けばよいのかと。 ret=eval("f.#{str}") ただ、この例だと、strに"g","p"以外を代入した際のキレイなエラー処理が知らなずでして。。