3

我在一些演示代码中发现,两者*xx*使用。有时,星号也用于类型,例如*int xs. 在帮助中,仅Var*记录了模式。将星号放在模式变量之前或之后有什么区别吗?

4

1 回答 1

2

好问题。答案是肯定的和否定的:

  • 是的:后缀*已被弃用,因为它在事物的表达式方面的一些奇怪的上下文中触发了后缀传递闭包的语法歧义。这不会发生在模式中,但为了保持一致性,我们希望前缀*表示模式中的“splat”和表达式中的“splice”,作为双重运算符,并删除后缀*以避免混淆。
  • 否:当应用于模式中的变量时,它们将具有相同的语义。

因此,请尽可能使用前缀+和前缀*,以避免将来我们从语言中删除后缀*时升级痛苦。+

于 2013-10-15T09:13:29.327 回答