Ответ
expect/actual — это механизм Kotlin Multiplatform для объявления платформо-зависимой реализации, где expect определяет сигнатуру, а actual — реализацию для конкретной платформы. Обычный интерфейс — это абстракция, не привязанная к платформе.
Пример:
// Общее для всех платформ
expect fun getPlatformName(): String
// Android реализация
actual fun getPlatformName(): String = "Android"
// iOS реализация
actual fun getPlatformName(): String = "iOS"
Ключевые отличия:
expect/actualкомпилируется в разные реализации для каждой платформы- Обычный интерфейс требует ручной реализации в каждом модуле
actualфункции/классы должны точно соответствоватьexpect(включая модификаторы)