CBZ的回答是正确的,但不完整,因为1.8.X和1.9.X之间存在行为差异:
1.9.2 IRB:
ruby-1.9.2-p180 :001 > x = [1,2,3,4,5]
=> [1, 2, 3, 4, 5]
ruby-1.9.2-p180 :002 > y = ["a","b"]
=> ["a", "b"]
ruby-1.9.2-p180 :003 > x.each do |y|
ruby-1.9.2-p180 :004 > p y
ruby-1.9.2-p180 :005?> end
1
2
3
4
5
=> [1, 2, 3, 4, 5]
ruby-1.9.2-p180 :006 > y
=> ["a", "b"]
1.8.7 IRB:
ree-1.8.7-2011.03 :001 > x = [1,2,3,4,5]
=> [1, 2, 3, 4, 5]
ree-1.8.7-2011.03 :002 > y = ["a","b"]
=> ["a", "b"]
ree-1.8.7-2011.03 :003 > x.each do |y|
ree-1.8.7-2011.03 :004 > p y
ree-1.8.7-2011.03 :005?> end
1
2
3
4
5
=> [1, 2, 3, 4, 5]
ree-1.8.7-2011.03 :006 > y
=> 5