gpt4 book ai didi

coffeescript - 为什么 CoffeeScript 在 map 后需要空格?

转载 作者:行者123 更新时间:2023-12-04 04:44:18 25 4
gpt4 key购买 nike

这段代码

nums = [1..10].map (i) -> i*2

运行

而这
nums = [1..10].map(i) -> i*2

被打破

最佳答案

这样做的原因是函数调用(调用)的括号是可选的。我发现这在我自己的代码中一直很困惑,并且有一个始终包含括号以使其清晰的一般政策。

在 CoffeeScript 中,如果省略括号,则假定参数列表位于行尾。您的第一个示例 CoffeeScript 实际上与此相同:

nums = [1..10].map((i) -> i*2)

其中 map 调用的第一个参数是函数 (i)->i*2
如果您删除 map 和 (i) 之间的空格,则 CoffeeScript 意味着该行的其余部分周围有括号。您的第二个示例 CoffeeScript 实际上与此相同:
nums = [1..10].map(i)(-> i*2)

在这里您可以看到使用 i 调用 map 作为唯一的参数,然后 CoffeeScript 期待 map(i)调用返回一个函数,然后通过 ->i*2 调用该函数或者更明确地说 ()->i*2作为论据。

鉴于 CoffeeScript 旨在消除 javascript 的潜在编码危险,我认为如果它们不包含这个隐含的括号会更安全。

关于coffeescript - 为什么 CoffeeScript 在 map 后需要空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9014970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com