FrontPage  Index  Search  Changes  Login

(Ruby)クロージャ

クロージャ

ブロックをオブジェクト化したもの。

引数に&をつけると、コードブロック表す。

foo = Proc.new{|x| x + 1}
foo.call(1)    #=> 2
foo.call(2)    #=> 3
class Foo
    def initialize(&action)
        @action = action
    end
    def process
        @action.call
    end
end
aFoo = Foo.new {puts "Hello world!"}
aFoo.process    #=> "Hello world!"
Last modified:2003/11/30 21:56:41
Keyword(s):
References: