函数名称和左括号之间的 Coffeescript 空格

Coffeescript whitespace between function name and left parenthese

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

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

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

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

foo(1,2)
foo 1, 2

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

bar = (x) -> x * x

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

bar (2)
# ---> 4

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

一样

对于接受两个参数的函数 foo,它将 (1,2) 计算为一个表达式。但是 , 不是有效的运算符,因此会引发错误。就像您在咖啡 CLI 中键入 1,2 一样。