List有 2 种方法指定将元素添加到(不可变)列表中:
+:(实施Seq.+:),和::(仅在 中定义List)
+:技术上具有更通用的类型签名——</p>
def +:[B >: A, That](elem: B)(implicit bf: CanBuildFrom[List[A], B, That]): That
def ::[B >: A](x: B): List[B]
——但忽略隐含的,根据文档消息只需要Thatbe List[B],签名是等价的。
List.+:和 和有什么不一样List.::?如果它们实际上是相同的,我认为+:最好避免取决于具体的实现List。但是为什么要定义另一个公共方法,客户端代码什么时候会调用它呢?
编辑
还有一个用于::模式匹配的提取器,但我想知道这些特定的方法。
另请参阅:Scala 列表连接,::: vs ++