Scala中::和:::之间的区别是什么

Hes*_*sey 73 scala

val list1 = List(1,2)
val list2 = List(3,4)
Run Code Online (Sandbox Code Playgroud)

然后

list1::list2 returns:

List[Any] = List(List(1, 2), 3, 4)

list1:::list2 returns:

List[Int] = List(1, 2, 3, 4)
Run Code Online (Sandbox Code Playgroud)

我看到这本书写道,使用::它时也会产生结果List[Int] = List(1, 2, 3, 4).我的Scala版本是2.9.

Deb*_*ski 104

::预先设置单个项目,而:::预先设置完整列表.因此,如果你把它放在它List前面::被视为一个项目,这将导致嵌套结构.

  • 性能应该是"O(n)",其中"n"是要预先添加的元素数. (2认同)

Ref*_*Jan 9

一般来说:

  • :: -在列表的开头添加元素,并返回包含添加的元素的列表
  • ::: -连接两个列表并返回连接的列表

例如:

1 :: List(2, 3)             will return     List(1, 2, 3)
List(1, 2) ::: List(3, 4)   will return     List(1, 2, 3, 4)
Run Code Online (Sandbox Code Playgroud)

在您的特定问题中,使用::会导致列表(嵌套列表)中的列表,因此我相信您更喜欢使用:::

参考:class List int官方网站