1
从一个练习中“的CoffeeScript - 加速JavaScript开发,”我正在努力写不重复这样的功能:DRY中的CoffeeScript功能
doAndRepeatUntil = (f, pred) ->
f()
f() until pred()
我怎么能不写调用f()
两次这个功能呢?
从一个练习中“的CoffeeScript - 加速JavaScript开发,”我正在努力写不重复这样的功能:DRY中的CoffeeScript功能
doAndRepeatUntil = (f, pred) ->
f()
f() until pred()
我怎么能不写调用f()
两次这个功能呢?
在我看来,你写的方式是首选。为了避免两次调用f
一个可以写:
doAndRepeatUntil = (f, pred) ->
loop
f()
break if pred()
但我认为它的可读性和优雅(相当于使用while (true)
)。
如果您查看附录1.2,您会发现您已经有了练习所要求的答案。目的只是为了控制一个函数中的重复,而不是完全根除它。你有意尝试额外的步骤吗? –