scala> val tokens = List("the", "program", "halted") tokens: List[String] = List(the, program, halted) scala> tokens.toSeq res0: scala.collection.immutable.Seq[String] = List(the, program, halted)
будет, но если вы введете это в командную строку, вы увидите, что Seq
все равно создадите List
под капотом:
Vector
Seq
интересно. Если ваши данные будут лучше приспособлены для хранения в a, List
это превратит его в вектор; в противном случае, он будет превратить его в Vector
(и Scala > Вэл тест : Seq [ Строка ] = лексемы тест : Seq [ Струнные ] = List ( с , программы , остановлен ) SCALA > VAL test2 : Seq [ Струнные ] = для ( маркер < - токены ) выход маркера test2 : Seq [ Строка ] = Список ( то , программа , остановились ) Scala > Val test3 = ( маркеры : Seq [ Строка ]) test3 : Seq [ Строка ] = Список ( то , программа , остановлен ) Скала > знач test4 : Seq [ String ] = токены . mkString ( "" ). split ( "" ). toSeq test4 : Seq [ Строка ] = WrappedArray ( то , программа , остановились ) s интересны сами по себе ...) , - как это супертипом как и . Во всяком случае, вы должны по умолчанию использовать другие типы коллекций, если у вас нет конкретного варианта использования, но это ответ на другой вопрос. Seq[String]
Seq
List
Vector
Разумеется, другие альтернативы:
List
(Просто шутишь об этом последнем)
Навынос , хотя в том , что вы можете просто указать тип переменной , как Seq
и Scala будет рассматривать его как таковой из - за того , как он обрабатывает , , и т.д. под капотом.val test: Seq[String] = tokens
val test = (tokens: Seq[String])
Vector