코틀린의 변수

타입 추론을 지원하는 정적 타입 언어이다.

코틀린은 자바와 마찬가지로 컴파일 타임에 모든 구성요소들의 타입을 알고있습니다.
이를 통해 타입 안정성을 확보합니다. JS 진영을 봐도 자바스크립트의 타입 안정성을 극복하기 위해 타입스크립트가 등장하였습니다.
타입스크립트에 대한 주변 개발자들의 평을 들어봐도 타입 안정성이 주는 이점은 매우 크다 생각합니다.
코틀린은 안정성을 가져가면서 타입 추론을 통해 편의성 또한 가져갔습니다.
타입을 명시해주지 않아도 대부분의 경우 컴파일러가 타입을 추론해줍니다.
(변수 선언 시 초기화를 하지 않는 경우는 예외적으로 타입을 명시해주어야 합니다!!)

- val

val 은 변경 불가능한 변수를 선언하는 키워드입니다.
자바의 final과 비슷한 기능을 하며, 한번 할당된 변수는 재할당될 수 없도록 해줍니다.
불변 변수들을 통해 사이드 이펙트를 줄일 수 있기 때문에 값의 재할당이 필요한 변수가 아니라면 val 키워드를 적극적으로 사용하는 것을 권장합니다.

val a: Int = 1
val b = 2
val c: Int
    
b = 10 // error!!
c = 3

- var

var은 변경 가능한 변수를 선언하는 키워드입니다.
자바의 일반 변수라고 볼 수 있습니다.
재할당이 가능하며 값을 변경해도 에러가 발생하지 않습니다.

var a = 3
a = 4
    
var b: Int = 4
b = 5

- const

최상위 수준에 val 로 변수로 선언하여 상수처럼 사용할 수 있지만, 결국 val 변수는 호출 시 getter를 호출하기 때문에 내부 동작이 상수와는 조금 다릅니다.
자바의 public static final 로 선언된 상수 처럼 사용하고 싶다면 const 를 사용합니다.
const 는 컴파일 시 자바의 public static final 로 컴파일 되기 때문에 동일하게 동작합니다.

const val SECRET = "ASHJNASDHJASDJKASD"
profile
Keep Going

0개의 댓글