0Pricing
Kotlin Academy · Урок

it: неявный параметр

Используйте неявный параметр «it» в лямбдах с одним параметром.

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

Неявный параметр it

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

it в forEach

Классический пример: forEach передаёт каждый элемент как it.

fun main() {
    listOf(1, 2, 3).forEach { println(it) }
}

it при преобразовании

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

fun main() {
    val doubled = listOf(1, 2, 3).map { it * 2 }
    println(doubled) // [2, 4, 6]
}

it при фильтрации

Функция фильтрации сохраняет элементы, для которых лямбда возвращает значение true. it обозначает текущий элемент.

fun main() {
    val evens = listOf(1, 2, 3, 4, 5).filter { it % 2 == 0 }
    println(evens) // [2, 4]
}

Когда НЕ следует использовать it

Если тело лямбды нетривиально, явно назовите параметр. Именованный параметр повышает ясность по сравнению с сокращённой записью it.

fun main() {
    val users = listOf("alice", "bob")
    // OK
    users.forEach { println(it) }
    // Clearer with a name when body is bigger
    users.forEach { name ->
        println("User: $name length=${name.length}")
    }
}

it во вложенных лямбдах

Будьте внимательны со вложенными лямбдами: каждый it относится к ближайшей внешней лямбде. Именование параметров помогает избежать неоднозначности.

fun main() {
    val nested = listOf(listOf(1, 2), listOf(3, 4))
    // Both lambdas use it — confusing!
    nested.forEach { outer ->
        outer.forEach { inner ->
            println("$outer -> $inner")
        }
    }
}

it со строковыми методами

Распространённый шаблон: фильтрация и преобразование строк с помощью it.

fun main() {
    val names = listOf("Alice", "bob", "Charlie")
    val upper = names.map { it.uppercase() }
    println(upper)
}

it со свойствами

it.property — удобный способ обращаться к полям при объединении операций в цепочку.

data class Person(val name: String, val age: Int)
fun main() {
    val people = listOf(Person("Ana", 20), Person("Ben", 35))
    val names = people.map { it.name }
    println(names) // [Ana, Ben]
}

Предикаты с it

Предикаты (лямбды, возвращающие логическое значение) естественно читаются при использовании it.

fun main() {
    val nums = listOf(1, 4, 7, 9)
    println(nums.any { it > 5 }) // true
    println(nums.all { it > 0 }) // true
    println(nums.none { it < 0 }) // true
}

Пользовательские функции с it

Любая функция высшего порядка с однопараметровой лямбдой автоматически предоставляет it.

fun <T> List<T>.firstWhere(predicate: (T) -> Boolean): T? {
    for (item in this) if (predicate(item)) return item
    return null
}
fun main() {
    val n = listOf(3, 8, 4, 5).firstWhere { it > 5 }
    println(n) // 8
}

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

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

fun main() {
    val name: String? = "Kotlin"
    name?.let { println("hello $it") } // it = name
}

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

Когда можно использовать it вместо имени параметра лямбды?

Итоги

it — неявное имя единственного параметра однопараметровой лямбды. Используйте его, чтобы сокращать короткие лямбды. Явно называйте параметры, если тело лямбды становится длиннее или вложенность может вызвать путаницу.

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

Урок «it: неявный параметр» бесплатный?

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

Чему я научусь в уроке «it: неявный параметр»?

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

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

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

Сколько времени занимает урок «it: неявный параметр»?

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

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

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

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

  1. Что такое лямбда? Синтаксис и типы
  2. Передача лямбд функциям
  3. it: неявный параметр
  4. filter, map и find для коллекций
← Назад к Kotlin Academy