См. https://docs.scala-lang.org/tour/operators.html - в Scala операторы являются методами, и методы могут быть вызваны с или без .
перед ними (между экземпляром и идентификаторами методов).
Также см. Документы для ArrayBuffer, в которых говорится, что +=
является псевдонимом для addOne
(или «добавление в конец»): https://www.scala-lang.org/api/current/scala/collection/mutable/ArrayBuffer.html
Так что это Метод добавляет строку y
в конец x
(которая является изменяемой).
scala> val x = ArrayBuffer("1", "3")
x: scala.collection.mutable.ArrayBuffer[String] = ArrayBuffer(1, 3)
scala> val y = ""
y: String = ""
scala> x.+=(y)
res1: x.type = ArrayBuffer(1, 3, "")
scala> x
res2: scala.collection.mutable.ArrayBuffer[String] = ArrayBuffer(1, 3, "")
// Add another string using a space, omitting the dot. Same thing
scala> x += "another string"
res3: x.type = ArrayBuffer(1, 3, "", another string)