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

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

    Последняя стандартная функция - это takeIf. Эта функция работает немного иначе, чем другие стандартные функции: она вычисляет условие, или предикат, заданное в лямбде, которое возвращает истинное или ложное значение. Если условие истинно, takeIf вернет объект-приемник. Если условие ложно, она вернет null.

    Рассмотрите следующий пример, который читает файл, только если файл доступен для чтения и для записи:

  val fileContents = File("myfile.txt")
      .takeIf { it.canRead() && it.canWrite() }
      ?.readText()

    Без takeIf это выглядит более громоздко:

  val file = File("myfile.txt")
  val fileContents = if (file.canRead() && file.canWrite()) { file.readText()
    } else { null
  }

    Вариант с takeIf не требует временной переменной file и явного возврата null. Эту функцию удобно использовать для проверки условия перед присваиванием значения переменной или продолжением работы. Концептуально takeIf - это оператор if, но с преимуществом прямого воздействия на экземпляр, что часто позволяет избавиться от временной переменной.

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




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