无法看到Scala列表的::
和+:
方法之间的真正区别。
我使用REPL进行测试,但无法从结果中看到差异。
任何人都可以告诉我如何正确使用它?
答案 0 :(得分:5)
查看List的代码,+:
使用::
(cons)运算符进行前置。
override def +:[B >: A, That](elem: B)(implicit bf: CanBuildFrom[List[A], B, That]): That = bf match {
case _: List.GenericCanBuildFrom[_] => (elem :: this).asInstanceOf[That]
case _ => super.+:(elem)(bf)
}
通常,+:
中定义了SeqLike
,任何实施SeqLike
的集合都可以使用相同的内容。
另一方面,::
在List
中定义,只能由List
使用。