【Perl,PHP】LLバトルロワイヤル【Ruby,Python】
■ このスレッドは過去ログ倉庫に格納されています
0563デフォルトの名無しさん
2008/02/09(土) 16:09:56は置いといて、メソッドは必ず何かのオブジェクトの持ち物だから、「メソッドの中でだけメソッドを定義し利用する」ことはできない。
Class Hoge
def foo
def bar
end
end
end
hoge=Hoge.new
hoge.bar # <= 未定義エラー
hoge.foo
hoge.bar # <= OK
で、いわゆるメソッド内スコープでサブルーチンみたいなことさせたい場合は
RubyではProcという手続きオブジェクトを作成して呼び出すのが普通
def foo
str = 'Python'
bar = Proc.new{ puts "#{str}はうんこ" }
bar.call
end
foo # <= "Pythonはうんこ"と表示
bar # <= 未定義エラー
■ このスレッドは過去ログ倉庫に格納されています