什么/为什么`loop`作为块参数传递给块

时间:2016-08-11 11:57:45

标签: ruby loops infinite-loop

Kernel#loop创建一个无限循环,基本上创建一个返回虚拟Qnil值的迭代器:

loop.with_index do |what, index|
  puts [what, index].inspect # what == Qnil, returned from iterator
  break
end
#⇒ [nil, 0]

我们可能无法让迭代器产生空白,这就是原因。现在问题是(感谢@Stefan明确表达措辞):为什么loop.peek_values返回一个空数组,而不是[nil]

0 个答案:

没有答案