const는 inline처럼 컴파일 될 때, 함수가 호출된 자리가 리터럴로 대체처리된다.
package constExample
const val hello = "Hello" + "World"
object Foo {
const val bar = "bar"
}
fun main() {
println(hello)
println(Foo.bar)
println(hello)
println(Foo.bar)
}
hello와 객체 내의 bar이 리터럴 형태를 가지고 있다.
이것은 컴파일 될 때
fun main() {
println("HelloWorld")
println("bar")
println("HelloWorld")
println("bar")
}
로 대체된다.
따라서 결과가
결과 :
HelloWorld
bar
HelloWorld
bar
로 출력된다.
이런 방식은 코틀린에서 반드시 리터럴을 인자로 받아와야 하는 문법에 사용된다.
반응형
'Android > 안드로이드 스터디(Kotlin)' 카테고리의 다른 글
Kotlin] 28. 다이아몬드 문제 (0) | 2020.12.10 |
---|---|
Kotlin] 27. lateinit (0) | 2020.12.10 |
Kotlin] 25. inline 함수 (0) | 2020.12.10 |
Kotlin] 24. 동반자 객체(Companion Object) (0) | 2020.12.10 |
Kotlin] 23. 객체 선언(Singleton) (0) | 2020.12.10 |