Какое отличие существует между механизмом expect/actual и стандартными интерфейсами в программировании?

Механизм expect/actual используется в Kotlin Multiplatform для определения платформо-зависимого кода. Ключевое отличие от стандартных интерфейсов в том, что:

Короткий ответ

Что ответить на собеседовании

Механизм expect/actual используется в Kotlin Multiplatform для определения платформо-зависимого кода. Ключевое отличие от стандартных интерфейсов в том, что:

Подробный разбор

Ответ с пояснениями

Механизм expect/actual используется в Kotlin Multiplatform для определения платформо-зависимого кода. Ключевое отличие от стандартных интерфейсов в том, что:

  • expect объявляет API без реализации (например, функцию или класс), которая ожидает платформо-специфическую реализацию.
  • actual предоставляет конкретную реализацию для определённой платформы (JVM, JS, Native).

В отличие от интерфейсов, которые определяют контракт и требуют реализации в классах, expect/actual разделяет объявление и реализацию между платформами, позволяя писать общий код с платформо-зависимыми деталями.

Пример:

// commonMain
expect fun getPlatformName(): String

// androidMain
actual fun getPlatformName() = "Android"

// iosMain
actual fun getPlatformName() = "iOS"

Таким образом, expect/actual помогает создавать мультиплатформенные библиотеки с разной реализацией под каждую платформу, тогда как интерфейсы просто задают контракт для классов в одной платформе.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку