ブロックでコールバック
- 作者: Lucas Carlson,Leonard Richardson,株式会社クイープ
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2007/04/27
- メディア: 大型本
- 購入: 1人 クリック: 73回
- この商品を含むブログ (55件) を見る
class EventSpawner def initialize(state="Java") @listeners = [] @state = state end def subscribe(&listener) @listeners << listener end def change_state(new_state) @listeners.each{ | listener | listener.call(@state, new_state) } @state = new_state end end spawner = EventSpawner.new spawner.subscribe do |old_state, new_state| puts "from #{old_state} to #{new_state}" end spawner.change_state("Ruby") # => from Java to Ruby
ブロックを使って、無名のメソッドを引き渡してコールバック。Coolだ。