我的印象是,Scala列表中的每個對象都必須具有相同的類型,並且如果我們需要擁有不同類型的某個集合,則應使用元組。Scala的列表中的對象的類型
從Scala的documentation類型的 元素,List
是
一類不可變的鏈表代表有序集合。
scala> val l1 = List(1,2,3)
l1: List[Int] = List(1, 2, 3)
scala> val l1 = List(1,2,3, "oh really?!")
l1: List[Any] = List(1, 2, 3, oh really?!)
這似乎並不如此。畢竟Any
本身是一個有效的Scala
類型,一切都可以減少到它。
請澄清
'List [T]'中找到更長的解釋,可能包含任何類型與「T」兼容的值,而不僅僅是那些完全是「T」的值。當你編寫一個'List'這樣的文字時,例如List(1,2,3,「string」)',編譯器就會發現一個超類型,它包含了參數中所有值的類型。當你將'AnyVal'(原始類型)和'AnyRef'(類類型)混合在一起時,唯一常見的超類型是'Any',這就是你的第二個例子中發生的事情。 –