Ruby 初心者スレッド Part 28
レス数が900を超えています。1000を超えると表示できなくなるよ。
0901デフォルトの名無しさん
2009/06/27(土) 05:35:22ブロックの外にあった変数がブロックの中で最後に使われてた値が残っちゃうけどね!
x = "x!"
[1,2,3].each{|x| puts "hoo"}
p x #=> 3
上記は "x!" じゃなくて 3 だよ!
s = "very important string"
puts "s is #{s} before block"
['one', 'two', 'three'].each do |count|
s = count.upcase
puts s
end
puts "after block, s is #{s}"
適当すぎる変数名をあちこちで使い回す癖のある人は気をつけたほうがいいよ!
あと見かけが似てるけど if はブロックつきメソッドじゃないから
ブロックの中で定義した新変数はブロックの外に持ち越されるよ!
[1,2,3].each{|x| y=x}
p y rescue puts "each では y ないです"
if true then
y = 4
end
p y rescue puts "if では y ないです"
レス数が900を超えています。1000を超えると表示できなくなるよ。