Назад к вопросам
Junior — Middle
70
Можешь ли ты описать основные отличия и назначения ключевых конструкций expect и actual в рамках тестирования?
Ответ от нейросети
sobes.tech AI
Ключевые конструкции expect и actual используются в Kotlin Multiplatform для реализации платформозависимого кода.
expectобъявляет интерфейс, класс, функцию или свойство без реализации — то есть задаёт контракт, который должен быть реализован на каждой целевой платформе.actualпредоставляет конкретную реализацию для платформы (Android, iOS, JVM и т.д.).
В контексте тестирования это позволяет писать общий тестируемый код с expect-объявлениями, а для каждой платформы реализовывать actual-версию, что упрощает кроссплатформенное тестирование.
Пример:
// commonMain
expect fun getPlatformName(): String
// androidMain
actual fun getPlatformName() = "Android"
// iosMain
actual fun getPlatformName() = "iOS"
Таким образом, expect/actual помогают разделять платформозависимую логику и обеспечивают возможность писать тесты, которые работают на всех платформах.