АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP, Python или фреймворки. Сегодня последний день для записи! Жми!
507 of 1310 menu
В течении недели будет ОБНОВЛЕНИЕ УЧЕБНИКОВ PHP. Поменяется структура! Подробнее по ссылке.

Функция orEmpty

Функция orEmpty является функцией-расширением, которая проверяет, является ли коллекция null. Если коллекция не null, функция возвращает её без изменений. Если коллекция null, функция возвращает пустую коллекцию того же типа. Это позволяет избежать проверок на null и обработки исключений NullPointerException.

Импорт

import kotlin.collections.orEmpty

Синтаксис

// Для Array<T>? fun <T> Array<out T>?.orEmpty(): Array<out T>
// Для Collection<T>? fun <T> Collection<T>?.orEmpty(): Collection<T>
// Для List<T>? fun <T> List<T>?.orEmpty(): List<T>
// Для Set<T>? fun <T> Set<T>?.orEmpty(): Set<T>
// Для Map<K, V>? fun <K, V> Map<K, V>?.orEmpty(): Map<K, V>
// Для Iterable<T>? fun <T> Iterable<T>?.orEmpty(): Iterable<T>
// Для Sequence<T>? fun <T> Sequence<T>?.orEmpty(): Sequence<T>
// Для String? fun String?.orEmpty(): String

Пример

Использование с массивом типа Array?:

val arr: Array<String>? = arrayOf("a", "b", "c") val res: Array<out String> = arr.orEmpty() println(res.contentToString())

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

Array<String> ['a', 'b', 'c']

Пример

Использование с null массивом типа Array?:

val arr: Array<Int>? = null val res: Array<out Int> = arr.orEmpty() println(res.contentToString())

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

Array<Int> []

Пример

Использование со списком типа List?:

val list: List<String>? = listOf("a", "b", "c") val res: List<String> = list.orEmpty() println(res)

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

List<String> [a, b, c]

Пример

Использование с null списком типа List?:

val list: List<Int>? = null val res: List<Int> = list.orEmpty() println(res)

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

List<Int> []

Пример

Использование с множеством типа Set?:

val set: Set<String>? = setOf("a", "b", "c") val res: Set<String> = set.orEmpty() println(res)

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

Set<String> [a, b, c]

Пример

Использование с null множеством типа Set?:

val set: Set<Int>? = null val res: Set<Int> = set.orEmpty() println(res)

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

Set<Int> []

Пример

Использование с отображением типа Map?:

val map: Map<String, Int>? = mapOf("one" to 1, "two" to 2) val res: Map<String, Int> = map.orEmpty() println(res)

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

Map<String, Int> {one=1, two=2}

Пример

Использование с null отображением типа Map?:

val map: Map<String, Int>? = null val res: Map<String, Int> = map.orEmpty() println(res)

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

Map<String, Int> {}

Пример

Использование со строкой типа String?:

val str: String? = "abcde" val res: String = str.orEmpty() println(res)

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

String "abcde"

Пример

Использование с null строкой типа String?:

val str: String? = null val res: String = str.orEmpty() println(res)

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

String ""

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

  • функцию isNullOrEmpty,
    которая проверяет, является ли коллекция null или пустой
  • функцию isNotEmpty,
    которая проверяет, что коллекция не пустая и не null
  • функцию ifEmpty,
    которая возвращает альтернативное значение для пустой коллекции