syntax - 函数名和左括号之间的 Coffeescript 空格
问题描述
函数名和左括号之间的空格有什么意义?
foo=(x,y)->x*y
foo(1,2) # ok
foo (1,2) # not ok
上面的最后一行给出了一个error: unexpected ,
.
解决方案
在 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 一样。
推荐阅读
- typescript - 将对象的值限制为标量
- css - 我可以在 eBay.co.uk 自定义描述中为列表使用外部 CSS 吗?
- unity3d - Google Daydream 智能手机作为控制器(统一蓝牙)
- r - 社区矩阵上的多元随机森林
- datagrip - 在 SQL Developer 中查看“其他用户”模式
- haskell - Haskell 使用 OverloadedStrings,但仍然出现 [Char] 错误
- perl - 如何在 YAML 中声明列表并使用 PERL YAML::XS 读取
- automation - 有人可以分享如何在任何地方自动化合并多个excel文件。我想创建自己的而不是使用机器人商店?
- python-3.x - 不可散列的类型:检查密钥是否存在时出现“dict”错误
- javascript - 您可以有条件地运行 if 语句的一部分吗?