2016-05-12 108 views
4

我看到一些Scala代碼寫成:什麼是「:+」的意思是在斯卡拉

def next(): Array[String] = someVariable.next() :+ iterator.key 

someVariable有一個方法next()獲得下一行和迭代器是Iterator[String]類型。

:+這是什麼意思?

+1

有沒有什麼原因讓你不在scala doc中查看它? http://www.scala-lang.org/api/2.11.8/index.html#[email protected]:+(elem:A):Array[A] API文檔相當全面,我的「去」地方提出這樣的問題。 –

+0

這很酷的新文檔(2.12)給你這個漂亮的搜索功能http://www.scala-lang.org/files/archive/api/2.12.0-M4/index.html?search=:+ – mfirry

回答

12

:+是由someVariable.next()返回的任何類型的方法。

據推測這是scala.Array.:+

此數組的副本連同所附的元件。


這也是一個IDE將極大地幫助你的情況。以Intellij爲例,您可以在:+上使用「快速文檔」或「跳轉到定義」命令,並立即找出它來自哪裏。我發現這個工具在編寫scala時非常有用。

+0

非常感謝你許多! – jlp

7

斯卡拉集合通常有:++:
兩者都添加一個元素到集合中。 :+附加+:前置。
一個很好的提醒是,:是集合去的地方。

還有colA ++: colB連續收集,其中:側收集確定結果類型。 但是沒有:++那只是colA ++ colB其中結果的類型是colA

+0

非常全面和簡潔,謝謝! – suvayu