rubyのブロックのスコープ(引数とそれ以外での違い)
rubyのブロックのスコープについてちょっと勘違いしていたのでメモ
rubyのバージョンは1.9.3
まとめ
- ブロックの引数
- ブロックローカル
- 初出がブロック内の(=ブロック内で宣言された)変数
- ブロックローカル
- 初出がブロック外の(=ブロック外で宣言された)変数
- 非ブロックローカル
テストコード
#!/usr/bin/env ruby a = 0 b = 0 (1..5).each do |a| b = a c = a end p a #=> 0 p b #=> 5 p c # undefined local variable
所感
上みたいなコードでbもブロックローカルだとか書いてあるサイトがあって混乱してた。