在CoffeeScript中,while循环是标准的:
while x()
y()
Run Code Online (Sandbox Code Playgroud)
但是,以下1不起作用:
do
y()
while x()
Run Code Online (Sandbox Code Playgroud)
对于第一个例子,这只是糖:
y() while x()
Run Code Online (Sandbox Code Playgroud)
CoffeeScript是否带有至少执行一次的内置循环?
1另外,do 是一个关键字 - 它用于调用匿名函数.
Ale*_*ban 68
CoffeeScript文档说:
CoffeeScript提供的唯一低级循环是while循环.
我不知道至少执行一次的内置循环,所以我想替代方案是
loop
y()
break if x()
Run Code Online (Sandbox Code Playgroud)
adr*_*lin 24
我知道这个答案已经很老了,但是自从我通过Google进入这里后,我认为其他人也可能.
要在CoffeeScript中构造一个do ... while循环等效,我认为这种语法可以模拟它最好,最简单,并且非常易读:
while true
# actions here
break unless # conditions here
Run Code Online (Sandbox Code Playgroud)
Tre*_*ham 16
你的猜测是正确的:do-whileCoffeeScript中没有相应的东西.所以你通常会写
y()
y() while x()
Run Code Online (Sandbox Code Playgroud)
如果您经常发现这种情况,可以定义辅助函数:
doWhile = (func, condition) ->
func()
func() while condition()
Run Code Online (Sandbox Code Playgroud)