こんにちは。やまがたです。 最近のJavaScript人気に便乗して、その特徴であるクロージャをRubyでも使ってみたいとおもいます。 まずはよくあるなJavaScriptによるクロージャの例です。 var f = (function f() { var i = 0; return function() { console.log(i++); } })(); f() // => 0 f() // => 1 f() // => 2 f() // =>3これをRubyで書いてみるとこうなります。 def f i = 0 Proc.new { puts i; i += 1 } end _f = f _f.call # => 0 _f.call # => 1 _f.call # => 2 _f.call # =>3それぞれの違いを見ていきましょう。 まずJavaScriptが変数fに生
![RubyでもJavaScriptみたいなクロージャを作ってみる | DevelopersIO](https://cdn-ak-scissors.b.st-hatena.com/image/square/8ba99c39b9a38c569471f3f14a8e4c03b5f60dd7/height=288;version=1;width=512/https%3A%2F%2Fdevio2023-media.developers.io%2Fwp-content%2Fuploads%2F2012%2F10%2Fruby.png)