在 Scala 中,将元素添加到不可变列表的方式如下:
val l = 1 :: 2 :: Nil
l: List[Int] = List(1, 2)
这意味着您首先创建一个 Nil(空)列表,然后添加 2 和 1。即这些操作是右关联的。因此,有效地,它可以以更清晰的方式重写,如下所示:
val l = (1 :: (2 :: Nil))
l: List[Int] = List(1, 2)
问题是,如果 List 应该保留插入顺序,并且如果先将 2 添加到空列表然后添加 1,那么为什么答案不是l: List[Int] = List(2, 1)
?