Инициализация массивов в Kotlin

Инициализация массивов в Котлине

 

1. обзор

В этом кратком руководстве мы рассмотрим, как инициализировать массив в Kotlin.

2. Метод библиотекиrrayOf 

Kotlin имеет встроенный методarrayOf, который преобразует предоставленные перечисленные значения в массив заданного типа:

val strings = arrayOf("January", "February", "March")

3. Примитивные массивы

Мы также можем использовать методarrayOf с примитивными значениями.

Тем не менее, Kotlin будет автоматически вставлять значения примитивов в соответствующие им классы обертки объектов, что будет иметь отрицательные последствия для производительности. Чтобы избежать этого, у Котлина есть широкая поддержка примитивных массивов. There are dedicated arrayOf methods for the following types: double, float, long, int, char, short, byte, boolean.с

Мы можем легко инициализировать примитивный массив int, используя специальный методarrayOf :

val integers = intArrayOf(1, 2, 3, 4)

4. Поздняя инициализация с индексами

Иногда мы не хотим определять значения массива при создании экземпляра. В этом случае мы можем создать массив значенийnull .

После создания экземпляра мы можем получить доступ и установить поля массива. Есть несколько способов сделать это, но наиболее распространенный способ - использовать свойство Kotlinindices _. This property returns a range of valid indices for the array. We can use range to access and set the values of the array in a _for loop.

Давайте инициализируем наш массив квадратными числами, используя такой подход:

val array = arrayOfNulls(5)

for (i in array.indices) {
    array[i] = i * i
}

5. Генерация значений с помощью инициализатора

Primitive arrays and object arrays both have constructors that accept an initializer function as a second parameter. Эта функция инициализатора принимает индекс в качестве входного параметра, переводит его в соответствующее значение с помощью функции и вставляет его в массив.

Мы можем инициализировать массив квадратными числами в одной строке:

val generatedArray = IntArray(10) { i -> i * i }

Как уже упоминалось, этот вид конструктора также доступен для массивов объектов:

val generatedStringArray = Array(10) { i -> "Number of index: $i"  }

6. Заключение

В этом уроке мы увидели, как инициализировать массивы в Kotlin. Мы обнаружили широкий спектр поддержки примитивных массивов. Мы также наблюдали, как мы можем использовать конструктор массива с функцией инициализатора для написания краткого кода.

Как всегда доступен кодover on GitHub.