先上代码
def manage
i = 0; ar = [0, 6]
while (ar != false)
work(ar, i)
puts "i=#{i},ar=#{ar}"; gets
i += 1
end
end
def work(ar, i)
if (i<6)
ar[0] = i
else
ar = false
end
#~ return
end
manage()
# 无限循环:i>6, ar=[5,6]
在 work() 函数里设置 ar=false 后,为什么 manage() 内的 ar 还是 [5,6]? 是因为 work() 的参数 ar 是个引用或者指针,然后 ar=false 只是把在 work() 函数内的 ar 指向 false,而没有影响到 manage() 内的 ar 的值吗?
不是很懂,求解答。谢谢。