Классы и свойства expect/actual
Не только функции: объявления, которые можно задать через expect/actual
«Классы и свойства expect/actual» — бесплатный урок Kotlin Multiplatform Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Kotlin Multiplatform Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Kotlin Multiplatform Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Beyond Functions
expect/actual is not limited to functions. You can also declare whole classes, properties, and even objects that differ per platform.
An expect Property
Need a value that each platform defines? Declare an expect val in commonMain and let every target supply the actual value.
expect val platformName: StringEach Target Sets It
Android and iOS each provide an actual val. The property reads like a constant in shared code but resolves per platform.
actual val platformName: String = "iOS"An expect Class
For richer behavior, declare an expect class. It lists the members shared code can use, while each platform fills in the bodies.
expect class Platform() {
val name: String
}The Android actual Class
The androidMain actual class implements every declared member. Here name returns an Android-specific string.
actual class Platform actual constructor() {
actual val name = "Android"
}Match Members Exactly
Each actual class must declare every member the expect promised, with the same names and types. Missing one is a compile error.
Constructors Need actual Too
If the expect class has a constructor, mark the platform one as an actual constructor. The compiler checks that they line up.
Use It Like Any Class
In shared code you just create and use it. The right actual backs the object, so common logic stays unaware of the platform.
val name = Platform().nameAdd Platform-Only Extras
An actual class may add extra private members beyond the expect. Only what the expect declares is visible to shared code.
Prefer the Smallest Tool
Use an expect property for a value, an expect function for an action, and an expect class only when you need state plus behavior. ✨
A Familiar Modern Note
Recent Kotlin nudges you toward interfaces plus expect/actual functions over expect classes, but classes still work well today.
Quick Check
Consider what an actual class owes its expect.
Recap
You saw that expect/actual covers properties and classes too. Declare the shape in commonMain, then fulfill every member in each platform's actual. 🎉
Часто задаваемые вопросы
Урок «Классы и свойства expect/actual» бесплатный?
Да — полный текст урока «Классы и свойства expect/actual» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Kotlin Multiplatform Academy, подпишись на CoddyKit PRO. Курс Kotlin Multiplatform Academy содержит 4 уроков всего.
Чему я научусь в уроке «Классы и свойства expect/actual»?
Не только функции: объявления, которые можно задать через expect/actual Ты практикуешь Kotlin Multiplatform Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Kotlin Multiplatform Academy?
Предыдущий опыт не требуется. Kotlin Multiplatform Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Классы и свойства expect/actual»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Kotlin Multiplatform Academy?
Да. Каждый урок Kotlin Multiplatform Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Зачем нужны expect/actual
- Получение имени платформы для каждой цели
- Классы и свойства expect/actual
- Распространённые ошибки и ошибки компилятора