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