FrontPage  Index  Search  Changes  Login

niche programmer - (Ruby)クロージャ Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

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

引数に&をつけると、コードブロック表す。
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!"