我是一个java程序员和学习Scalanow。在Java中,单例对象意味着在整个JVM中只能有一个这种类型的对象存在。但在斯卡拉我怎么可能创造条件,相同的两个型单对象,比如我可以在相同类型的类创建了两个单一对象序列:困惑斯卡拉Singleton对象
val s1 = Seq("aa","bb")
val s2 = Seq("aa","bb","cc")
我是一个java程序员和学习Scalanow。在Java中,单例对象意味着在整个JVM中只能有一个这种类型的对象存在。但在斯卡拉我怎么可能创造条件,相同的两个型单对象,比如我可以在相同类型的类创建了两个单一对象序列:困惑斯卡拉Singleton对象
val s1 = Seq("aa","bb")
val s2 = Seq("aa","bb","cc")
这是一个有点不同。 阅读文档:http://docs.scala-lang.org/tutorials/tour/singleton-objects.html。
在你的例子中,你创建一个Seq类型的值。它不是一个单身人士! 这里例如,对于单:
object Blah {
def sum(l: List[Int]): Int = l.sum
}
这是一个重复的问题。
当你通过@Pavel指向的文档阅读,这是值得指出的是:
val s1 = Seq("aa","bb")
也没有创造任何单。相反,它在Seq
的抽象超类上调用apply
方法,该方法返回instance
。