Шаг 105.
Основы Kotlin.
Стандартные функции. Функция takeUnless

    На этом шаге мы рассмотрим назначение и применение этой функции.

    Выше мы сказали, что закончили обзор, но есть еще одна функция, дополняющая функцию takeIf, о которой стоит упомянуть, чтобы предостеречь от ее использования: takeUnless. Функция takeUnless действует так же, как takeIf, но возвращает объект-приемник, если условие ложно. Следующий код читает файл, если он не скрытый (и возвращает null, если скрытый):

  val fileContents = File("myfile.txt").takeUnless { it.isHidden }?.readText()

    Мы рекомендуем ограничить использование takeUnless, особенно для проверки сложных условий, потому что понимание программы у читающих ее людей займет много времени. Сравните "понятность" этих двух фраз:

    сли вам понадобилось время, чтобы осмыслить это, то вы могли ощутить, что takeUnless выглядит как менее естественный способ описания логики, которую нужно выразить.

    Для простых условий (как в примере выше) takeUnless не проблема. Но в более сложных примерах понять работу takeUnless будет сложнее (человеку, по крайней мере).

    На следующем шаге мы приведем краткую сводку по стандартным функциям.




Предыдущий шаг Содержание Следующий шаг