使用Scala不可变列表时我可以轻松完成
1 :: List(2, 3, 4)
这给了我一个新列表,我仍在使用不可变数据结构。
那我为什么不能呢
(1 -> 1) :: Map(2 -> 2)
答案 0 :(得分:4)
它在那里;它叫做+
。
scala> Map(2 -> 2) + (1 -> 1)
res0: scala.collection.immutable.Map[Int,Int] = Map(2 -> 2, 1 -> 1)
它们的功能相当不同,所以我认为以不同的方式命名它们并不奇怪。 ::
只构造一个cons单元格(它实际上是构造函数 - ::
is a case class that extends List
),而Map
的{{1}}具有更复杂的行为,要么添加新映射,要么替换现有的一个取决于地图中键的值。
名称+
暗示来自Haskell等语言的::
,名称:
与+
上的+
方法一致是一种有点常见的非正式数学符号。