1
由於搜索:+不會產生任何結果(感謝谷歌!)我找不到任何回答我的問題:爲什麼在Scala中追加List以返回其他List類型?
爲什麼:導致
List[Any]
a :+ b
如果兩個 'A' 和 'b' 是類型
List[Int]
自己試試它了,以下將不編譯(Scala的2.11.6,Idea14):預先
由於搜索:+不會產生任何結果(感謝谷歌!)我找不到任何回答我的問題:爲什麼在Scala中追加List以返回其他List類型?
爲什麼:導致
List[Any]
a :+ b
如果兩個 'A' 和 'b' 是類型
List[Int]
自己試試它了,以下將不編譯(Scala的2.11.6,Idea14):預先
:+
object AAA extends App {
val a: List[Int] = List[Int]()
val b: List[Int] = List[Int]()
val x: List[Int] = a :+ b
}
THX追加到一個List
單個元件。所以,要附加一個List[Int]
爲List[Int]
,導致類似(如果a
和b
都設置爲List(1, 2)
):
List(1, 2, List(1, 2))
斯卡拉計算元素類型(Int
)和東西你們之間最常見的類型追加(List[Int]
),即Any
。
你可能想連接兩個列表:
val x: List[Int] = a ++ b
我真的很驚訝斯卡拉讓我做的。我希望它被禁止追加[任何]到類型集合。 – pmkrefeld 2015-03-30 20:02:06
@pmkrefeld如你所說,它不會讓你在'x'預計爲'List [Int]'時編譯它。 – 2015-03-30 20:25:18
我的意思是我很驚訝a:List [Int]:+ b:任何都可以,應該是什麼用例呢? – pmkrefeld 2015-03-30 20:46:00