Урок №3 готов - это функции, лямбды и extensions в Kotlin
Если ты прошёл первые два урока, у тебя уже есть базовые типы, if / when, null safety. Этого хватает, чтобы читать код. Но чтобы писать нормальный Kotlin - пока ещё нет.
И третий урок как-раз закрывает этот разрыв:
1. Функции - продвинутые возможности. Named arguments, default параметры, single expression, vararg. В Swift мы привыкли к внешним и внутренним именам параметров, а вот в Kotlin это работает иначе. Одна функция с default параметрами заменяет десяток перегрузок.
2. Лямбды. Замыкания по-котлиновски. { x -> } вместо { x in }, it вместо $0, trailing lambda. Отдельно разобрал :: - ссылки на функции и конструкторы. И почему @escaping и [weak self] тут не нужны.
3. Extension functions и properties. fun String.isEmail() вместо extension String { }. Nullable receiver - вызов extension на null без краша. Паттерн Dto.toDomain(), который встречается очень часто в KMP проектах.
4. Scope functions: et, apply, also, run, with. Помнишь ?.let { } из урока 2? Теперь стало немного понятно, почему это работает, это же extension + лямбда. Так же разобрал когда какую использовать и почему вложенные scope functions - маленько зло...
Каждая тема идет со сравнением Swift vs Kotlin. Получается, что всё это далеко не абстрактная теория, а конкретные примеры: как ты писал в Swift и как это выглядит в Kotlin.
В конце как обычно домашнее задание:
• easy
• easy+
• medium
По времени где-то на 90-100 минут. Ну и самособой вопросы? Предложения? В лс или комментах всегда жду =)
kmp