Что такое actual

«Что такое actual» — вопрос из категории Kotlin, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Actual — это ключевое слово в Kotlin Multiplatform (KMP), которое указывает на платформенно-зависимую реализацию функции или класса, объявленного как expect.

Пример:

// Общий модуль (commonMain)
expect fun getPlatformName(): String

// Android модуль (androidMain)
actual fun getPlatformName(): String = "Android"

// iOS модуль (iosMain)
actual fun getPlatformName(): String = "iOS"

Ключевые моменты:

  • actual всегда парный с expect
  • Должен находиться в platform-specific модуле
  • Реализация должна точно соответствовать сигнатуре expect-объявления
  • Позволяет писать общий код с платформенно-специфичными реализациями