0207 kotlin

사랑이란 멜론·2024년 2월 7일

코맞은 kotlin

목록 보기
2/5

오늘은

이만큼 했습니다!

마지막에 immutable collection 얘기가 나와서

변경이 불가능한 것이라면

val로 선언해야하는거고
const는 val 앞에 써야 한대

그래서 든 생각이 이거 다 하면 안되나??
구글링 하는데 이런 생각을 한 사람이 많이 없는 것 같아서
답이 안나와서 직접 해봤습니다.

좋은 자료들을 찾았는데

내용은 이렇습니다.

val의 값은 런타임 시 할당 -java의 final과 비슷

const val의 값은 컴파일 시 할당 -java의 static final과 비슷

하다고 한다.

const val은 객체 할당이 불가능하고 기본 타입만 가능하다

라는 줄과 함께

  • val은 field + getter 메소드가 조합된 것이라고 한다

    field 로 접근하지만 내부적으로는 getter 메소드가 호출된다고 한다.

val 에서 사용되는 getter 메소드는 코드상에서 재정의 할 수 있다고 한다.
하지만 const val은 getter 선언이 불가능하다고 한다.
출처 :https://findmypiece.tistory.com/243

  • val : 런타임 시 결정
    val은 독립적인 프로그램 수행 중에 프로그램 수행에 따라 값이 바뀔 수 있다고 한다.
    두 숫자를 더한 값을 반환하는 함수로 val의 값을 정한다고 했을 때 이 값은 함수의 parameter로 들어가는 숫자에 따라 언제든지 달라질 수 있다고 한다.

  • const val : 컴파일 시 결정
    클래스의 생성자에 할당될 수 없다.
    함수나 클래스 내에서 사용하려면 companion object 아래 중괄호 안에 선언해야 한다고 한다.
    출처 : https://velog.io/@dabin/Kotlin%EB%B3%80%EC%88%98%EC%84%A0%EC%96%B8-val-var

뭐 이런 정보들을 머리 속에 때려박았더니 아 원래 그런거였지? 하고 깨달아 버렸습니다.

profile
은 여기 있어요

0개의 댓글