第128回 Rubyを使っている人は無意識のうちにクロージャを使っているかもしれない
eachなどに与えるブロックは高階関数と考えてよい
class Hoge def foo c = 10; [1,2,3].each{|i| puts c} end end Hoge.new.foo
結果:
10 10 10
each{ }の中にいるcは外側のcを見れている。
参考
まつもとゆきひろ コードの世界?スーパー・プログラマになる14の思考法
- 作者: まつもとゆきひろ,日経Linux
- 出版社/メーカー: 日経BP社
- 発売日: 2009/05/21
- メディア: 単行本
- 購入: 50人 クリック: 1,711回
- この商品を含むブログ (110件) を見る