Функция asIntArray

Функция asIntArray преобразует массив чисел типа Int? в массив IntArray. При этом выполняется проверка на null значения и выбрасывается исключение, если в исходном массиве присутствуют null значения.

Импорт

kotlinimport kotlin.collections.asIntArray

Синтаксис

kotlinfun Array<Int?>.asIntArray(): IntArray

Пример

Преобразуем массив чисел типа Int? без null значений в IntArray:

kotlinval numbers: Array<Int?> = arrayOf(1, 2, 3, 4, 5)
val res: IntArray = numbers.asIntArray()
println(res.contentToString())

Результат выполнения кода:

kotlinIntArray [1, 2, 3, 4, 5]

Пример

Попробуем преобразовать массив с null значениями:

kotlinval numbers: Array<Int?> = arrayOf(1, null, 3, 4, 5)
val res: IntArray = numbers.asIntArray()
println(res.contentToString())

Результат выполнения кода:

kotlinException: java.lang.NullPointerException

Пример

Для безопасного преобразования с фильтрацией null значений используйте комбинацию с функцией filterNotNull:

kotlinval numbers: Array<Int?> = arrayOf(1, null, 3, null, 5)
val notNullNumbers = numbers.filterNotNull().toIntArray()
println(notNullNumbers.contentToString())

Результат выполнения кода:

kotlinIntArray [1, 3, 5]

Пример

Сравнение производительности asIntArray и toIntArray:

kotlinval numbers: Array<Int?> = arrayOf(1, 2, 3, 4, 5)

// Быстрое преобразование без проверки null
val fastRes = numbers.asIntArray()

// Безопасное преобразование с проверкой
val safeRes = numbers.toIntArray()

println("asIntArray: ${fastRes.contentToString()}")
println("toIntArray: ${safeRes.contentToString()}")

Результат выполнения кода:

kotlinasIntArray: [1, 2, 3, 4, 5]
toIntArray: [1, 2, 3, 4, 5]

Смотрите также

  • функцию toIntArray,
    которая безопасно преобразует массив с null значениями
  • функцию toInt,
    которая преобразует различные типы данных в Int
  • функцию toIntOrNull,
    которая безопасно преобразует строки и другие типы в Int
  • функцию asList,
    которая преобразует массив в список