【发布时间】:2018-10-11 16:38:28
【问题描述】:
函数名和左括号之间的空格有什么意义?
foo=(x,y)->x*y
foo(1,2) # ok
foo (1,2) # not ok
上面的最后一行给出了error: unexpected ,。
【问题讨论】:
标签: syntax coffeescript
函数名和左括号之间的空格有什么意义?
foo=(x,y)->x*y
foo(1,2) # ok
foo (1,2) # not ok
上面的最后一行给出了error: unexpected ,。
【问题讨论】:
标签: syntax coffeescript
在 Coffeescript 中,您可以调用一个函数,该函数接受带或不带括号的参数:
foo(1,2)
foo 1, 2
如果你有一个空格,那么它可以很好地解释与参数在同一行的任何内容。让我们以另一个函数bar 为例,它只接受一个参数:
bar = (x) -> x * x
你可以在括号前加一个空格来调用它:
bar (2)
# ---> 4
这是因为 Coffeescript(或 Javascript)中的括号可用于包装表达式以及调用函数。常见的例子是if 语句或复杂的条件/数学表达式。在 bar (2) 的情况下,表达式的内容被简单地计算为 2(就像您在咖啡 CLI 中键入 2 一样)。然后将其传递给bar,就好像您调用了bar 2。
对于带有两个参数的函数foo,它会将(1,2) 计算为表达式。但是, 不是有效的运算符,因此会引发错误。就像您在咖啡 CLI 中输入 1,2 一样。
【讨论】: