loop 方法没有终止循环条件,只是不断的执行循环处理,如下列代码所示:
loop do
print "Ruby"
end
结果是:
Ruby
Ruby
......
下面是一段元编程书中的代码:
def explore_array(method)
code = "['a', 'b', 'c'].#{method}"
puts "evaluating: #{code}"
eval code
end
loop { p explore_array(gets()) }
在终端中执行上面的代码,回车,输入 size,只会执行一次该方法,即:
['a', 'b', 'c'].size
然后等待下次方法的输入,为什么 gets 方法出现在 loop 循环中会出现如上的结果,即只循环一次,而不是循环无限次?