我正在阅读 Programming with Ruby 2.0 并有一个问题
def my_while(cond, &body)
while cond.call
body.call
end
end
a=0
my_while -> { a < 3 } do
print a
a += 1
end #=> 0 1 2
我的问题是:为什么我们不能以这种方式使用该方法
def my_while(cond, &block)
while cond
block.call
end
end
a = 0
my_while (a<3) do
print a
a += 1
end #=> infinite loop
实际上如何在条件 (a<3) 和块参数的情况下使用此函数?
PS我看到了这个问题,但仍然不能在那里发表评论!