0Pricing
Kotlin Academy · Урок

Выбор подходящего инструмента

Когда использовать каждый из них

«Выбор подходящего инструмента» — бесплатный урок Kotlin Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Kotlin Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Kotlin Academy содержит 4 уроков всего.

Выбор функции области видимости

При наличии пяти функций области видимости выбор подходящей сводится к двум вопросам:

  • Как обозначается объект: через this или it?
  • Что возвращается: результат лямбды или объект?

Таблица выбора

Вот полная картина:

  • let использует it и возвращает результат лямбды.
  • run использует this и возвращает результат лямбды.
  • with использует this (аргумент) и возвращает результат лямбды.
  • apply использует this и возвращает объект.
  • also использует it и возвращает объект.

Используйте let для безопасности null

Если у вас есть значение, допускающее null, и вы хотите работать с ним только при наличии, используйте let с безопасным вызовом.

fun main() {
    val name: String? = "Ada"
    name?.let { println("Hello $it") }
}

Используйте run для this и результата

Если вы хотите обращаться к членам объекта через this и вычислять результат, используйте run.

fun main() {
    val text = "scope"
    val info = text.run { "$this has length $length" }
    println(info)
}

Используйте with для группировки

Если у вас есть объект, не равный null, и нужно выполнить над ним несколько операций, with подходит естественным образом.

fun main() {
    val list = listOf(1, 2, 3)
    with(list) {
        println(sum())
        println(size)
    }
}

Используйте apply для настройки

Если вы создаёте объект и должны задать несколько свойств, apply делает код понятным и возвращает объект.

data class Server(var host: String = "", var port: Int = 0)

fun main() {
    val server = Server().apply {
        host = "0.0.0.0"
        port = 80
    }
    println(server)
}

Используйте also для побочных эффектов

Если вы хотите вести журнал, отлаживать или проверять объект, не изменяя его, выбирайте also с it.

fun main() {
    val nums = listOf(1, 2, 3)
        .also { println("Got ${it.size} items") }
    println(nums.sum())
}

Комбинирование функций области видимости

В реальном коде их часто объединяют в цепочку: настраивают с помощью apply, ведут журнал с помощью also и преобразуют с помощью let.

data class User(var name: String = "", var score: Int = 0)

fun main() {
    val label = User()
        .apply { name = "Max"; score = 90 }
        .also { println("Created $it") }
        .let { "${it.name}: ${it.score}" }
    println(label)
}

Избегайте чрезмерного использования

Функции области видимости могут ухудшить читаемость, если вкладывать их друг в друга или использовать слишком часто. Если обычная переменная и явный код читаются понятнее, отдайте предпочтение им. Используйте функции области видимости, чтобы устранить действительно повторяющийся код, а не ради изобретательности.

Проблема вложенности

Вложенные функции области видимости делают it и this неоднозначными. Если вложенность необходима, переименуйте параметр, чтобы сохранить ясность.

fun main() {
    val outer = "A"
    outer.let { o ->
        "B".let { i ->
            println("$o then $i")
        }
    }
}

Краткая мысленная модель

Запомните: функции, возвращающие объект (apply, also), строят конвейеры; функции, возвращающие результат (let, run, with), преобразуют значения. Выбирайте между it и this с учётом читаемости.

Быстрая проверка

Какую функцию области видимости следует использовать, чтобы настроить только что созданный объект и получить этот объект обратно?

Итоги

Теперь у вас есть система выбора: ориентируйтесь на способ обращения (this или it) и возвращаемое значение (объект или результат). let и run преобразуют, with группирует, apply настраивает, а also добавляет побочные эффекты. Используйте их, чтобы уменьшать лишний код, а не добавлять его.

Часто задаваемые вопросы

Урок «Выбор подходящего инструмента» бесплатный?

Да — полный текст урока «Выбор подходящего инструмента» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Kotlin Academy, подпишись на CoddyKit PRO. Курс Kotlin Academy содержит 4 уроков всего.

Чему я научусь в уроке «Выбор подходящего инструмента»?

Когда использовать каждый из них Ты практикуешь Kotlin Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Kotlin Academy?

Предыдущий опыт не требуется. Kotlin Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Выбор подходящего инструмента»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Kotlin Academy?

Да. Каждый урок Kotlin Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. let и run
  2. apply и also
  3. with
  4. Выбор подходящего инструмента
← Назад к Kotlin Academy