ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Kotlin] val / const val
    Kotlin/Types 2021. 7. 21. 18:32

    val 프로퍼티

     

    runtime시점에 값을 할당

    할당 가능한 타입: 기본 타입, 참조 타입


    const val 프로퍼티

     

    const키워드

    compile시점에 값을 할당

    compile시점에 할당된다는 것은 메서드, 생성자 등으로 할당할 수 없다는 말이다.

    그렇기 때문에 기본 자료형의 리터럴로 초기화해야한다.

    또는 현재 const val 프로퍼티의 코드 윗줄에 선언된 다른 const 프로퍼티로 초기화하는 것도 가능하다

    할당 가능한 타입: 기본타입, String

     

    다음의 조건을 만족하지 않으면 에러가나게 된다.

    read-only(val)프로퍼티의 값을 compile시점에 예상할 수 있으면 const modifier를 사용해라.

    const프로퍼티는 다음을 만족해야 한다.

    • top-level 프로퍼티가 가능하다(top-level에서 선언되어야 한다)
    • object또는 companion objcet의 멤버일 수 있다.
    • String이나 primitive로 초기화되어야 한다.( 컴파일 시점이기 때문에 참조타입 불가, String리터럴은 예외)
    • custom getter를 사용해서는 안된다.

                                                                                                  top-level 포스팅 참고

                                                                                            https://hellose7.tistory.com/27


    ( 위의 참고 포스팅에 상세하게 적혀있다 )

    하는김에 var까지 확인하자.

    val이면 값 변경이 불가능하므로 final로 

    top-level에 선언되면 static으로

    top level function의 경우 open키워드가 없으면 default로 확장이 불가능한 final로 된다.

     

    TestKt.java

    const val과 val은 모두 static final로 만들어지는데 차이는 const val는 getter메서드가 존재하지 않음을 볼 수 있다. 

     

    A.java

    'Kotlin > Types' 카테고리의 다른 글

    [Kotlin] Array  (0) 2021.12.16
    [Kotlin] Nothing, Unit  (0) 2021.08.16
    [Kotlin] Type check and Type casts  (0) 2021.08.13
    [Kotlin] 코틀린 패키지 / .kt파일과 .java파일 (feat. top-level선언)  (0) 2021.07.21
    [Kotlin] 변수/자료형  (0) 2021.07.07

    댓글

Designed by Tistory.