Класс scala.Array
Массивы — это изменяемые, индексированные коллекции значений. Array[T] — это представление Scala для T[] Java.
val numbers = Array(1, 2, 3, 4) val first = numbers(0) // read the first element numbers(3) = 100 // replace the 4th array element with 100 val biggerNumbers = numbers.map(_ * 2) // multiply all numbers by two
Массивы используют два распространенных фрагмента синтаксического сахара Scala, показанные в строках 2 и 3 приведённого выше примера кода. Строка 2 преобразуется в вызов apply(Int), а строка 3 — в вызов update(Int, T).
В scala.Predef существуют два неявных преобразования, которые часто применяются к массивам: преобразование в scala.collection.ArrayOps (показано в строке 4 примера выше) и преобразование в scala.collection.mutable.ArraySeq (подтип scala.collection.Seq). Оба типа предоставляют многие стандартные операции, найденные в API коллекций Scala. Преобразование в ArrayOps временное, поскольку все операции, определённые на ArrayOps, возвращают Array, в то время как преобразование в ArraySeq постоянное, поскольку все операции возвращают ArraySeq.
Преобразование в ArrayOps имеет приоритет над преобразованием в ArraySeq. Например, рассмотрим следующий код:
val arr = Array(1, 2, 3) val arrReversed = arr.reverse val seqReversed : collection.Seq[Int] = arr.reverse
Значение arrReversed будет иметь тип Array[Int], при этом произойдёт неявное преобразование в ArrayOps для выполнения операции reverse. Значение seqReversed, с другой стороны, будет вычислено путём преобразования в ArraySeq в первую очередь и вызова варианта reverse, который возвращает ещё один ArraySeq.
| См. также |
Спецификация языка Scala, для получения подробной информации о преобразованиях, которые компилятор Scala выполняет над массивами (соответственно разделы 6.6 и 6.15). "Массивы Scala 2.8" — документ Scala Improvement Document, описывающий массивы с момента появления Scala 2.8. "API коллекций Scala 2.8" раздел о |
|---|---|
| Надтипы |
Конкретные методы
Исходный код
Элемент по заданному индексу.
Индексы начинаются с 0; xs.apply(0) — это первый элемент массива xs. Обратите внимание, что синтаксис индексирования xs(i) является сокращением для xs.apply(i).
| Параметры значения |
|
|---|---|
| Возвращает | элемент по заданному индексу |
| Исключения |
|
Исходный код
Клонировать массив.
| Возвращает | Клон массива. |
|---|---|
| Определяющие классы | Object |
Исходный код
Длина массива
Исходный код
Обновить элемент по заданному индексу.
Индексы начинаются с 0; xs.update(i, x) заменяет i-й элемент в массиве. Обратите внимание, что синтаксис xs(i) = x является сокращением для xs.update(i, x).
| Параметры значения |
|
|---|---|
| Исключения |
|
© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.1.1/scala/Array.html