CoffeeScript中剩下的`while … while循环…?
在CoffeeScript中, while
循环是标准的:
while x() y()
但是,以下1不起作用:
do y() while x()
这仅仅是第一个例子的糖:
y() while x()
CoffeeScript是否带有一个至less执行一次的内置循环?
1另外, do
是一个关键字 – 它用来调用匿名函数。
CoffeeScript文档说:
CoffeeScript提供的唯一低级循环是while循环。
我不知道一个内置的循环至less执行一次,所以我猜是另一种方法
loop y() break if x()
我知道这个答案是非常古老的,但是自从我通过Google进入这里之后,我还以为别人可能也是这样。
在CoffeeScript中构build一个do … while循环我认为这个语法模仿它是最好的,最简单的,而且是非常可读的:
while true # actions here break unless # conditions here
你的猜测是正确的:CoffeeScript中没有do-while
等价物。 所以你通常会写
y() y() while x()
如果你经常这样做,你可以定义一个辅助函数:
doWhile = (func, condition) -> func() func() while condition()
我发现这可以通过短路条件来实现:
flag = y() while not flag? or x()
我一直在做一个项目,我只是强迫条件评估在循环结束,然后终止在开始。
# set the 'do' variable to pass the first time do = true while do # run your intended code x() # evaluate condition at the end of # the while code block do = condition # continue code
这不是很优雅,但它确实让你无法为你的代码块定义一个新的函数并运行两次。 通常有一种方法来编写do … while语句,但是那些时候你不能有一个简单的解决scheme。