我从这篇文章中偷走了我的标题:执行一个函数,直到它返回一个nil,将其值收集到一个列表中
那个问题是指Lisp,坦率地说,是我的头脑.但是,我认为他的问题 - 翻译成Ruby - 正是我自己的:
在[Ruby]中创建条件循环的最佳方法是执行函数,直到它返回NIL,此时它将返回的值收集到列表中?
我现在的,笨重的方法是这样的:
def foo
ret = Array.new
x = func() # parenthesis for clarity (I'm not a native Ruby coder...)
until x.nil?
ret << x
x = func()
end
ret
end
Run Code Online (Sandbox Code Playgroud)
这段代码片段会做我想要的......但我知道有一种更干净,更具惯用性的Ruby方法......对吗?