Функция asIntArray
Функция asIntArray
преобразует массив чисел
типа Int?
в массив IntArray
.
При этом выполняется проверка на null
значения
и выбрасывается исключение, если в исходном
массиве присутствуют null
значения.
Импорт
import kotlin.collections.asIntArray
Синтаксис
fun Array<Int?>.asIntArray(): IntArray
Пример
Преобразуем массив чисел типа Int?
без null
значений в IntArray
:
val numbers: Array<Int?> = arrayOf(1, 2, 3, 4, 5)
val res: IntArray = numbers.asIntArray()
println(res.contentToString())
Результат выполнения кода:
IntArray [1, 2, 3, 4, 5]
Пример
Попробуем преобразовать массив с null
значениями:
val numbers: Array<Int?> = arrayOf(1, null, 3, 4, 5)
val res: IntArray = numbers.asIntArray()
println(res.contentToString())
Результат выполнения кода:
Exception: java.lang.NullPointerException
Пример
Для безопасного преобразования с фильтрацией
null
значений используйте комбинацию с
функцией filterNotNull
:
val numbers: Array<Int?> = arrayOf(1, null, 3, null, 5)
val notNullNumbers = numbers.filterNotNull().toIntArray()
println(notNullNumbers.contentToString())
Результат выполнения кода:
IntArray [1, 3, 5]
Пример
Сравнение производительности asIntArray
и toIntArray
:
val 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()}")
Результат выполнения кода:
asIntArray: [1, 2, 3, 4, 5]
toIntArray: [1, 2, 3, 4, 5]
Смотрите также
-
функцию
toIntArray
,
которая безопасно преобразует массив сnull
значениями -
функцию
toInt
,
которая преобразует различные типы данных вInt
-
функцию
toIntOrNull
,
которая безопасно преобразует строки и другие типы вInt
-
функцию
asList
,
которая преобразует массив в список