scala> class A { ... }
defined class A
A
可以带或不带括号实例化:
scala> val a = new A
a: A = A@4a27b5cd
scala> val aaa = new A()
aaa: A = A@68aa419e
(更多)惯用的是哪种形式?
据我所知,创建对象是side effect
类似于0-arity参数样式的样式,是否应该包括括号?
我在这里写了一个类似的答案:https : //stackoverflow.com/a/20664517/1296806
特别重要的是,构造函数与parens方法不一样。
构造函数始终具有非隐式参数列表。如果在定义中省略它,则将提供它。
new A
是惯用的。(如果需要对其进行合理化处理,请考虑将实例作为结果。如果实例化是一个副作用,那么非原始的事物就不可能是纯粹的。)
new A().a
需要括号,因此它们在语法上很有用。
如果后面有隐式,则必须提供parens;请参阅链接。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句