对象创建语法差异

时间:2017-01-02 12:27:28

标签: scala

new ClassNamenew ClassName()之间有区别吗?它只是语法差异还是在后台发生了scala魔术?

1 个答案:

答案 0 :(得分:3)

据我所知,只有语法差异。使用scala REPL的示例:

scala> val foo = new scala.collection.mutable.HashMap
foo: scala.collection.mutable.HashMap[Nothing,Nothing] = Map()

scala> val foo = new scala.collection.mutable.HashMap()
foo: scala.collection.mutable.HashMap[Nothing,Nothing] = Map()

我认为这只是Scala中正常行为的一个例子,在调用不带参数的方法时允许省略括号。