[code="ruby"]
def aa
a = [1,2,3]
result = []
for i in a
puts i
result << lambda {i}
end
result
end
def bb
a = [1,2,3]
result = []
a.each {|j|
result << lambda {j}
}
result
end
puts aa[0].call #3
puts bb[0].call #1
[/code]
为什么第一种循环方式,数组中每个lambda的参数都是3呢?