继续说有一个意想不到的,但我没有接受任何改变。
addAnimation : (anim) ->
if anim.time > @animations[@animations.length - 1]
@animations.push(anim)
else if anim.time < @animations[0]
@animations.unshift(anim)
else
for index in [1..@animations.length]
if anim.time > @animations[index-1].time
and anim.time < @animations[index]
@animations.splice(index, 0, anim)
break
所有间距尽可能正确。我使用4进行所有缩进,并且没有尾随空格。我是否误解了语法问题。顺便说一句,这应该是一个简单的插入排序。
答案 0 :(得分:2)
如果您将and
内联并删除break
语句中的额外缩进,那么它可以正常工作。
addAnimation : (anim) ->
if anim.time > @animations[@animations.length - 1]
@animations.push(anim)
else if anim.time < @animations[0]
@animations.unshift(anim)
else
for index in [1...@animations.length] by 1
if anim.time > @animations[index-1].time and
anim.time < @animations[index]
@animations.splice(index, 0, anim)
break
关键是如果行以操作符结束,CoffeeScript将不会将下一行解释为语句的主体,因此如果您希望if
语句跨越多行,则必须以每行结束运营商:
if a and
b and
not c
do something
虽然这不会编译:
if a
and b
not c
do nothing