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 — локальная установка не требуется.
Все уроки этого курса
- Что такое лямбда? Синтаксис и типы
- Передача лямбд функциям
- it: неявный параметр
- filter, map и find для коллекций