Инициализация массивов в Котлине
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.