val list1 = List(1,2)
val list2 = List(3,4)
那么
list1::list2 returns:
List[Any] = List(List(1, 2), 3, 4)
list1:::list2 returns:
List[Int] = List(1, 2, 3, 4)
我看到书中写到使用 ::
时,也会得到 List[Int] = List(1, 2, 3, 4)
的结果。我的 Scala 版本是 2.9。
val list1 = List(1,2)
val list2 = List(3,4)
那么
list1::list2 returns:
List[Any] = List(List(1, 2), 3, 4)
list1:::list2 returns:
List[Int] = List(1, 2, 3, 4)
我看到书中写到使用 ::
时,也会得到 List[Int] = List(1, 2, 3, 4)
的结果。我的 Scala 版本是 2.9。
::
前缀表示添加一个单独的项目,而:::
前缀则表示添加一个完整的列表。因此,如果您在 ::
前面放置一个List
,它将被视为一个项目,这将导致嵌套结构。
一般来说:
::
- 在列表的开头添加一个元素并返回带有此元素的列表:::
- 连接两个列表并返回连接后的列表例如:
1 :: List(2, 3) will return List(1, 2, 3)
List(1, 2) ::: List(3, 4) will return List(1, 2, 3, 4)
根据您的具体问题,使用::
会导致列表中嵌套另一个列表(嵌套列表),因此我相信您更喜欢使用:::
。
参考:官方网站上的List类
::
和:::
之间有区别吗? - nullO(n)
,其中n
是要前置的元素数量。 - Debilski