Scala 列表方法`::` 与`+:`

Scala List method `::` vs `+:`

看不出 Scala List 的 ::+: 方法之间的真正区别。

我使用 REPL 进行测试,结果看不出差异。

任何人都可以告诉我如何正确使用它?

查看 List 的代码,+: 使用 :: (缺点)运算符进行前置。

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 使用。