Computer >> 컴퓨터 >  >> 프로그래밍 >> Android

Kotlin var와 val 차이점 완벽 정리 – 언제 무엇을 써야 할까?

Kotlin에서는 변수를 선언할 때 두 가지 키워드를 사용할 수 있습니다. 하나는 var이고, 다른 하나는 val입니다. 두 키워드 모두 변수를 선언하는 역할을 하지만, 선언 이후에 값을 다시 할당할 수 있는지 여부에서 결정적인 차이가 있습니다. 이 글에서는 실제 예제를 통해 두 선언 방식이 어떻게 다른지 자세히 살펴보겠습니다.

var와 val 핵심 차이점 비교

구분varval
선언 예시var varName = "hello World"val sName = "tutorialspoint.com"
불변성변경 가능(Mutable)변경 불가능(Immutable)
값 할당 횟수여러 번 할당 가능최초 한 번만 할당 가능
재할당 여부재할당 가능재할당 불가능

예제 1: var로 선언한 변수의 값 변경하기

아래 예제에서는 valvar로 각각 변수를 선언한 뒤, var로 선언한 변수의 값을 새로 할당해 보겠습니다. var로 선언한 변수는 변경 가능하기 때문에 값이 아무 문제 없이 바뀌는 것을 확인할 수 있습니다.

val sName = "tutorialspoint";
var varName = "hello World"

fun main() {
   println("Example of val--->"+sName);
   println("Example of Var--->"+varName);

   // var로 선언한 변수는 변경 가능(mutable)합니다
   varName = "new value";
   println("New value of the variable declared using Var: " +varName);
}

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Example of val--->tutorialspoint
Example of Var--->hello World
New value of the variable declared using Var: new value

예제 2: val로 선언한 변수의 값 변경 시도하기

이번에는 val로 선언한 변수의 값을 변경하려고 시도해 보겠습니다. val은 불변(immutable) 변수를 만들기 때문에, 이미 한 번 할당된 값을 다시 할당하려 하면 오류가 발생합니다.

val sName = "tutorialspoint";
var varName = "hello World"

fun main() {
   println("Example of val--->"+sName);
   println("Example of Var--->"+varName);

   // val로 선언한 변수는 변경 불가능(immutable)합니다
   sName = "new value";
   println("New value of the variable declared using Var: " +sName);
}

오류 결과

val로 선언된 변수에 새 값을 할당하려고 하면 컴파일 단계에서 다음과 같은 오류가 발생합니다.

main.kt:9:5: error: val cannot be reassigned
sName = "new value";
^

정리: var와 val, 어떤 것을 사용해야 할까?

결론적으로 var는 프로그램 실행 도중 값이 반드시 바뀌어야 하는 변수에, val은 한 번 정하면 더 이상 바뀌지 않는 값에 사용합니다. Kotlin 공식 스타일 가이드에서도 특별한 이유가 없다면 val을 기본으로 사용할 것을 권장합니다. 불변 변수를 사용하면 코드의 예측 가능성이 높아지고, 멀티스레드 환경에서도 안전하며, 의도하지 않은 값 변경으로 인한 버그를 사전에 방지할 수 있기 때문입니다.