НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
1310 of 1310 menu

Функция also

Функция also является стандартной функцией-расширением в Kotlin, которая позволяет выполнить дополнительные действия с объектом в цепочке вызовов. Она принимает лямбда-выражение с получателем, в котором можно выполнить побочные операции, и возвращает исходный объект без изменений.

Синтаксис

inline fun <T> T.also(block: (T) -> Unit): T

Пример

Использование also для логирования перед выполнением операции:

val numbers = mutableListOf(1, 2, 3) val modified = numbers.also { println("Before modification: $it") }.add(4) println(numbers)

Результат выполнения кода:

Before modification: [1, 2, 3] [1, 2, 3, 4]

Пример

Использование also для инициализации свойств объекта:

class Person { var name: String = "" var age: Int = 0 } val person = Person().also { it.name = "Alice" it.age = 25 } println("${person.name}, ${person.age}")

Результат выполнения кода:

Alice, 25

Пример

Использование also для отладки промежуточных результатов:

val result = (1..10) .map { it * 2 } .also { println("After map: $it") } .filter { it > 10 } .also { println("After filter: $it") } .sum() println("Final result: $result")

Результат выполнения кода:

After map: [2, 4, 6, 8, 10, 12, 14, 16, 18, 20] After filter: [12, 14, 16, 18, 20] Final result: 80

Пример

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

val file = File("example.txt").also { if (!it.exists()) { it.createNewFile() } } println("File exists: ${file.exists()}")

Результат выполнения кода:

File exists: true
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить