首页 > 解决方案 > 函数名和左括号之间的 Coffeescript 空格

问题描述

函数名和左括号之间的空格有什么意义?

foo=(x,y)->x*y
foo(1,2) # ok
foo (1,2) # not ok

上面的最后一行给出了一个error: unexpected ,.

标签: syntaxcoffeescript

解决方案


在 Coffeescript 中,您可以调用一个函数,该函数接受带或不带括号的参数:

foo(1,2)
foo 1, 2

如果你有一个空格,那么它可以很好地解释与参数在同一行的任何内容。让我们以另一个bar只接受一个参数的函数为例:

bar = (x) -> x * x

您可以在括号前使用空格来调用它:

bar (2)
# ---> 4

这是因为 Coffeescript(或 Javascript)中的括号可用于包装表达式以及调用函数。常见的例子是if语句或复杂的条件/数学表达式。在 的情况下bar (2),表达式的内容被简单地评估为 2(就像您2在咖啡 CLI 中键入一样)。然后将其传递给bar就好像您调用了bar 2.

对于带有foo两个参数的函数,它的计算结果(1,2)为表达式。But,不是有效的运算符,因此会引发错误。就像您输入1,2咖啡 CLI 一样。


推荐阅读