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

Функция fromOrNull

Функция fromOrNull используется для безопасного преобразования строки в соответствующий элемент перечисления (Enum). Если строка не соответствует ни одному из значений перечисления, функция возвращает null вместо выброса исключения. Это делает код более безопасным и избегает необходимости обработки исключений.

Синтаксис

enumClass.fromOrNull(value: String): EnumType?

Пример

Создадим перечисление дней недели и преобразуем строку в элемент Enum:

enum class Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } val dayString = "MONDAY" val day: Day? = Day.fromOrNull(dayString) println(day)

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

MONDAY

Пример

Попробуем преобразовать несуществующее значение строки в элемент Enum:

val invalidString = "INVALID_DAY" val day: Day? = Day.fromOrNull(invalidString) println(day)

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

null

Пример

Использование fromOrNull с обработкой результата через Elvis оператор:

val input = "FRIDAY" val day: Day = Day.fromOrNull(input) ?: Day.MONDAY println(day)

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

FRIDAY

Пример

Использование fromOrNull в условии if:

val userInput = "SATURDAY" if (Day.fromOrNull(userInput) != null) { println("Valid day entered") } else { println("Invalid day entered") }

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

Valid day entered

Пример

Работа с перечислением, содержащим пользовательские значения:

enum class Status(val code: Int) { ACTIVE(1), INACTIVE(0), PENDING(2) } val status = Status.fromOrNull("ACTIVE") println("Status: $status, Code: ${status?.code}")

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

Status: ACTIVE, Code: 1

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

  • функцию valueOf,
    которая преобразует строку в элемент Enum с выбросом исключения
  • функцию values,
    которая возвращает массив всех элементов перечисления
  • функцию entries,
    которая возвращает список всех элементов перечисления
  • функцию name,
    которая возвращает имя элемента Enum в виде строки