【问题标题】:Pass a function as a first argument in a function call in coffeescript在咖啡脚本的函数调用中将函数作为第一个参数传递
【发布时间】:2011-07-08 17:44:06
【问题描述】:

在下面的代码中

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

如何修复上面的解析错误?

谢谢

【问题讨论】:

    标签: coffeescript


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      我通常这样做:

      foo ->
        doStuff('foo')
      , 5
      

      或者这个:

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

      在参数列表中包含额外的括号从来都不是我的正确做法,因为我的大脑很难解析。

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2012-06-29
          • 2019-03-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-14
          • 2012-03-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多