Kotlin expect, actual 키워드
멀티 플랫폼 개발(expect, actual)
expect
와 actual
키워드는 Kotlin Multiplatform 프로젝트에서 사용되는 특별한 키워드이다. 이는 Kotlin이 여러 플랫폼에서 사용되도록 설계된 특징을 활용한다.
일반적으로 Kotlin Multiplatform 프로젝트에서는 코드를 여러 플랫폼(예: JVM, Android, iOS, JavaScript)에 공유한다. 그러나 각 플랫폼마다 특정한 구현이 필요한 경우가 있다. 이런 경우를 위해 expect
와 actual
키워드를 사용하여 플랫폼별로 다른 구현을 제공할 수 있다.
- expect
expect
키워드는 특정 인터페이스, 클래스, 또는 함수가 플랫폼에서 어떻게 구현되어야 하는지를 선언하는 데 사용된다.- 즉, 예상되는 구현을 정의한다. 이는 일반적으로 공유 코드에서 사용되며, 특정 플랫폼에서 제공되어야 하는 API를 정의하는 데 사용된다.
- actual
actual
키워드는expect
키워드와 매핑되어 실제로 해당 인터페이스, 클래스, 또는 함수의 구체적인 구현을 제공한다.- 이는 플랫폼별로 제공되는 특정 구현입니다. 따라서 각 플랫폼에 대해 특정한 코드를 작성할 수 있다.
다음은 expect
와 actual
키워드를 사용하여 플랫폼별로 다른 구현을 제공하는 간단한 예제이다.
// common module
expect fun platformSpecificFunction(): String
// JVM module
actual fun platformSpecificFunction(): String {
return "This is the JVM implementation"
}
// iOS module
actual fun platformSpecificFunction(): String {
return "This is the iOS implementation"
}
// Usage
fun main() {
println(platformSpecificFunction()) // Output depends on the platform
}
위의 예제에서 platformSpecificFunction
은 공유(common) 모듈에서 expect
로 선언되어 있다. 그리고 각 플랫폼에 따라 실제 구현은 actual
키워드를 사용하여 제공된다. 이로 인해 각 플랫폼에서 실행할 때마다 적절한 구현이 사용된다.
최종 수정 : 2021-09-26