将函数作为coffeescript函数调用中的第一个参数传递

时间:2011-07-05 05:46:55

标签: coffeescript

在以下代码中

x= (f,n) -> f(n)
...
x( (n) -> n+1 , 5) #parse error

如何解决上面的解析错误?

由于

3 个答案:

答案 0 :(得分:28)

一对括号可以解决这个问题,只是在IRC上找到答案。

x( (n) -> n+1  , 5) #parse error
x ((n) -> n+1) , 5 #fixed

答案 1 :(得分:17)

我通常会这样做:

foo ->
  doStuff('foo')
, 5

或者这个:

fn = -> doStuff('foo')
foo fn, 5

在参数列表中包含额外的parens从来没有和我坐在一起,因为我的大脑难以解析。

答案 2 :(得分:2)

阿里的答案与他提出的问题略有不同。一个正确的解决方案是

x = (f,n) -> f(n)

x(( -> n+1), 5)