Ruby 初心者スレッド ..
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
154:デフォルトの名無しさん 08/12/02 22:41:36 そこで2重にする意味が分からんけどこういうこと? eval(<<EOS) def hello(person) "Hello, \#{person}!" end EOS 155:デフォルトの名無しさん 08/12/02 22:45:27 >>153 そもそも2重evalで何がやりたいのかを詳しく そのサンプルコードでは、意図がよく分からない 156:デフォルトの名無しさん 08/12/02 23:03:12 それはさすがに見たままなんじゃね def hello(person) return eval("Hello, #{person}") end という。eval文の入ったメソッド定義そのものをeval文で書きたいのだろ 157:デフォルトの名無しさん 08/12/02 23:05:29 EOSは何もくくらないと、"EOS"と同じ扱いになる つまり文字列全体をダブルクオートでくくったのと同じ状態になるので、展開が起きる 外側のevalに渡された文字列を評価する時点で#{person}が展開されちゃって、変なことになってる 展開を抑制するのが楽な回避法。'EOS'とすべし helloメソッドは文字列を返したいのかもしれないけど、 それだと内側のevalにも括弧が足りない eval <<'EOS' def hello(person) eval %q[ "Hello, #{person}!" ] end EOS print hello("Ruby") # => Hello, Ruby!
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
4283日前に更新/244 KB
担当:undef