while や for がスコープを作らないのに対し、loop や each などのイテレータはスコープを作ります
loopやeachはスコープあるんですね・・・.
(1..5).each do |i|
var = true
end
p var
$ ruby test.rb
test.rb:4: undefined local variable or method `var' for main:Object (NameError)
Squeakでいうブロック変数になると考えれば良さそう.
同じような結果にするには・・・.
(1 to: 5) do:[:v |
| var |
var = true.].
var " popupが表示され,var appears to be undefined at this point. Proceed anyway"
trap::スコープ、制御構造 - Rubyリファレンスマニュアル
0 件のコメント:
コメントを投稿