3
我发现在一些演示代码中,使用了*x
和x*
。有时候,这颗恒星也用于类型,如*int xs
。在帮助中,仅记录了Var*
的模式。在模式变量之前或之后放置星星有什么区别?`* x`和`x *`是否有区别?
我发现在一些演示代码中,使用了*x
和x*
。有时候,这颗恒星也用于类型,如*int xs
。在帮助中,仅记录了Var*
的模式。在模式变量之前或之后放置星星有什么区别?`* x`和`x *`是否有区别?
好问题。答案是既肯定又否定:
*
已过时,因为它触发与语法歧义后修复传递闭包在对事物的表达方面有些怪异上下文。这不会发生在模式中,但为了保持一致性,我们希望前缀*
表示模式中的“splat”,表达式中的“splice”作为双重操作符,并删除后缀*
以避免混淆。否:当应用于模式中的变量时,它们将具有相同的语义。所以,请使用前缀+
和前缀*
时可能避免升级的痛苦在未来,当我们从语言中删除后缀*
和+
。
感谢您的回答。但我想你想交换“不”和“是”,不是吗。为了确保我的理解正确,对于_cluster_模式和_splice_表达式,应该使用前缀'+'和'*',因为后缀语法将在关系操作上保留_only_。 – day
你是对的!谢谢;-)会改变答案。 – jurgenv