코틀린 expect, actual 키워드

짐니·2024년 7월 9일
0
post-thumbnail

코틀린 멀티플랫폼 프로젝트에서는 코드를 여러 플랫폼(JVM, Android, iOS, JavaScript)에서 공유한다.

그러나 각 플랫폼마다 특정한 구현이 필요한 경우가 있을 수 있다. 이런 경우를 위해 expectactual 키워드를 사용하여 플랫폼별로 다른 구현을 할 수 있다.

expect로 선언 후, actual 키워드를 사용하여 구현한다.

다음은 예시 코드이다.

// commonMain
expect class Platform() {
    val name: String
}

fun getPlatformName(): String {
    return Platform().name
}


// jvmMain
actual class Platform actual constructor() {
    actual val name: String = "JVM"
}


// iosMain
actual class Platform actual constructor() {
    actual val name: String = "iOS"
}

//Usage
fun main(){
	val p = Platform()
	println(p.name) //플랫폼 마다 결과 출력
}

인터페이스와 비슷한 역할을 하며, 구체적인 구현은 제공하지 않는다.
그리고 오직 멀티플랫폼 프로젝드에서만 사용된다.

profile
데브업 종사자

0개의 댓글

관련 채용 정보