Класс Array.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.2.0/scala/Array.html