我看到一些Scala代码是这样写的:
def next(): Array[String] = someVariable.next() :+ iterator.key
someVariable
拥有一个方法next()
用于获取下一行,该迭代器的类型为Iterator[String]
。
这里的:+
是什么意思?
我看到一些Scala代码是这样写的:
def next(): Array[String] = someVariable.next() :+ iterator.key
someVariable
拥有一个方法next()
用于获取下一行,该迭代器的类型为Iterator[String]
。
这里的:+
是什么意思?
:+
和+:
。两者都会向集合中添加元素,:+
会将元素追加到末尾,+:
则会将元素插入到开头。:
代表集合的位置。colA ++: colB
可以用于连接集合,其中:
决定了结果类型。如果存在:++
,它与++
相同。在这两种情况下,左侧集合决定了结果类型。++
和:++
有什么区别? - f4x:+
是在someVariable.next()
返回的任何类型上的方法。
很可能是scala.Array.:+
,请参考这里
一个附加了元素的数组的副本。
这也是使用IDE会大大帮助你的情况。例如,在Intellij中,你可以使用“Quick doc”或“Jump to definition”命令查看:+
来确定它来自哪里。我发现这个工具在编写Scala时非常有价值。
scala> List(1,2,3,4) :+ 400
res27: List[Int] = List(1, 2, 3, 4, 400)