++
- бинарный оператор (метод) для двух коллекций.Но :+
или +:
является оператором для добавления element
к collection
(collection
всегда должен быть смежным с :
, а element
, добавляемый в коллекцию, всегда должен бытьрядом с +
в :+
, т. е. его следует использовать как collection :+ element
или element +: collection
до append
или prepend
от element
до collection
соответственно. Таким образом, cols :+"col3"
будетдайте нам ожидаемый ответ, потому что тогда "col3"
будет рассматриваться как string element
для добавления к cols
collection
.
При использовании cols ++ "col3"
, String
"col3"
обрабатывается компилятором как коллекция, т. е. List('c','o','l','3')
, cols
- коллекция строк, поэтому результирующая коллекция - List[Any]
, потому что она содержит строки и символы, супертип String
и Char
выводится компилятором как Any
.