可能重复:
“new” keyword in Scala
我注意到在Scala中创建某些实例,您可以使用new
。什么时候开发人员需要使用new
?为什么有些物品会让你错过使用它?
由于
List(“this”,“is”,“a”,“list”)创建这四个字符串的List;没有 新要求
Map(“foo” - > 45,“bar” - > 76)创建一个String到Int的Map,没有新的 必要而且没有笨拙的助手类。
取自here ..
答案 0 :(得分:12)
通常,scala集合类使用apply
方法在其伴随对象中定义工厂方法。 List("this","is","a","list")
和Map("foo" -> 45, "bar" ->76)
是用于调用这些apply方法的语法糖。使用这个惯例是相当惯用的scala。
此外,如果您定义case class C(i: Int)
,它还会定义一个工厂C.apply(i: Int)
方法,可以将其称为C(i)
。所以不需要 new 。
除此之外,创建对象需要new
。