我在一些演示代码中发现,使用了*x
和x*
。有时,星号也用于类型,例如*int xs
。在帮助中,仅记录了模式Var*
。在模式变量之前或之后放置星形是否有区别?
答案 0 :(得分:2)
好问题。答案是肯定和否:
*
,因为它会在表达方面的某些奇怪的上下文中触发语法歧义,并使用post-fix传递闭包。这种情况不会发生在模式中,但为了保持一致性,我们希望前缀*
表示模式中的“splat”和表达式中的“拼接”,作为双重运算符,并删除后修复*
避免混淆。因此,请尽可能使用前缀+
和前缀*
,以避免将来从语言中移除后缀*
和+
时出现升级问题。< / p>