注意你并不需要保证列表是相同类型的。Scala会自动选择最相关的父类:
scala> val list1 = 0 to 10 toList list1: List[Int] = List(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) scala> val list2 = 10 to 0 by -1 toList list2: List[Int] = List(10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0) scala> val list3 = list1.asInstanceOf[List[Double]] list3: List[Double] = List(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) scala> list3 ++ list2 res4: List[AnyVal] = List(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0)
你可以看到最后的返回是
AnyVal
类型的列表,这是对于Int
和Double
最常见的父类。
注意asInstanceOf后面是中括号[]