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