我是一個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
。