7月 182013
めんどうくさくてRuby1.8.7から上げていないままのアプリがあって、ちょっと修正したら動かなくなった。
JavaScriptにホイスティングというのがあって〜〜という話を〓が前に言っていて、へぇ〜と思っていたらRubyでも似たのが発生していた
hoisting.rb
urls = ["http://shokai.org/blog", "https://shokai.github.com", "http://example.com"]
url = "hoge"
puts url
urls.delete_if{|url| url =~ /shokai/ }
p urls
puts url
各Rubyで実行した結果
1.8.7だけ、変数urlの中身が書き換わっている。
どうしょうもないので、何かイテレータにしか使わなそうな名前を使うとか、_urlみたいな変数名を使うとかしないとならない。
urls.delete_if{|i| i =~ /shokai/ }
4年ぐらいRuby使ってるけど始めて遭遇したと思う