Kotlin - 변수(var, val, const)

이동수·2024년 8월 24일

Kotlin

목록 보기
4/33


var(variable) - 언제든지 읽쓰가능, Mutable변수
val(value) - 변경안되는거, Assign-once변수, Immutable변수

웬만하면 val로 선하는게 좋다.

변수 선언위치에따라 이름바뀜

  • 클래스 내에 선언된변수 : property(프로퍼티)
  • scope 내에 선연 : local variable(로컬변수)

변수 초기화

코틀린은 자동 변수 초기화를 지원하지 않으므로 직접 초기화하여야함

val a: Int //error
//다른언어는 저렇게 하면 a는 0으로 저장된다, 하지만 코틀린은 error뜸

코틀린은 기본 변수에서 null은 허용하지않음 (다른 언어들은 변수가 초기화되지 않으면 null처리)
var c : Int? = null (변수에 null을 허용한다, 이렇게하면 null됨)

상수 쓰는 이유

  • 변수는 런타임시 객체 생성하는데 시간이 더 오래걸림, 성능하락
  • 늘 고정적으로 사용할 값은 상수사용으로 성능 향상함

var

  • 계속 초기화가능
    val

  • 한번 초기화하면 다음에는 못함

  • 런타임 시에 초기화 되는거임, 런타임에서 한번 값을 할당한 후 변경할 수 없다

  • 할당된 객체를 바꿀수 없을 뿐이지 객체 내부의 속성을 변경할수 없는건 아니다

const val

  • 컴파일 시점에 결정되어 절대 바꿀수 없는 값

  • 클래스 수준이 아닌 최상위 수준에서 사용

  • 런타임에 값을 할당하거나 변경할 수 없다

  • 런타임에 생성되는 거는 못 담음

  • 기본 자료형만 선언 가능함

  • 사용불가

    • 사용자 정의 클래스
    • 프로퍼티
    • 함수
    • 클래스 내 변수(클래스 내에서 쓰려면 companion object 안에서사용가능)
    • null허용되는 타입
    • 제너릭타입
  • 사용가능

    • 최상위 변수
    • 전역변
    • object 클래

즉 var은 런타임시 초기화되며, 값을 변경할 수 없는 변수를 선언할 때 사용되고,
const는 컴파일 타임에 초기화되는 상수를 정의할 때 사용

0개의 댓글