Ruby 懒洋洋地对IO.popen说“是”

Ruby 懒洋洋地对IO.popen说“是”,ruby,lazy-evaluation,Ruby,Lazy Evaluation,我有以下方法: def yessir IO.popen('yes').each do |y| y end end puts yessir.first 它调用yes,这是一个将y永久写入控制台的程序。如果运行此代码,它将永远不会返回,这意味着yessir-方法不是惰性的。如何解决此问题?删除关键字return@UriAgassi我更新了q,因此您的答案已过期。谢谢,对不起! def yessir IO.popen('yes').lazy.each do |y| y

我有以下方法:

def yessir
  IO.popen('yes').each do |y|
    y
  end
end

puts yessir.first

它调用
yes
,这是一个将
y
永久写入控制台的程序。如果运行此代码,它将永远不会返回,这意味着
yessir
-方法不是惰性的。如何解决此问题?

删除关键字
return
@UriAgassi我更新了q,因此您的答案已过期。谢谢,对不起!
def yessir
  IO.popen('yes').lazy.each do |y|
    y
  end
end

puts yessir.first