언어(Language)/Kotlin

[Kotlin] 코틀린 var과 val 이해하기

잇트루 2023. 10. 22. 02:58
반응형

식별자(Identifier)

식별자(변수명)는 프로그램을 이루는 요소를 가리키기 위해 사용한다. 데이터를 가리키는 식별자를 사용할 때는 가장 기본적으로 선택해야 하는 사항이 있다.

  • var : 변할 수 있는 수(variable)의 약자로, 내용을 재대입할 수 있다.
  • val : 값(value)의 약자로, 식별자의 값을 단 한 번만 초기화할 수 있다. 값을 초기화하고 나면 내용을 변경할 수 없다.

 

 

변할 수 있는 수 var

var은 다음과 같이 정의한다.

var 식별자 = 초기화

 

몇 가지 var 정의를 살펴보자.

fun main() {
    var number = 8
    var pi = 3.14
    var words = "Hello Kotlin!"

    println(number)
    println(pi)
    println(words)
}
// 출력
8
3.14
Hello Kotlin!
  • number라는 이름의 var 변수에 정수를 저장한다.
  • pi라는 이름의 var 변수에 소수를 저장한다.
  • words라는 이름의 변수에 문자열 텍스트를 저장한다.

 

var은 변할 수 있는 수로 var에 저장된 값은 달라질 수 있다. 즉, 저장된 데이터를 변경할 수 있다.

  • var 변수를 가변(mutable)이라고 한다.
fun main() {
    var number = 5      // number를 5로 초기화
    number = 7          // number를 7로 대입
    number = number + 3 // number에 3을 더함
    number += 5         // number에 5를 더함(number = number + 5)

    println(number)
}
// 출력
15

var에 저장한 값을 변경하는 방식은 변화를 표현할 때 유용하다. 하지만 프로그램이 복잡해지면 복잡해질수록, 변화하지 않는 식별자(val)를 통해 값을 표현해야 코드가 더 명확하고 안전하며 이해하기 쉬워진다.

 

 

값 val

val은 처음 생성될 때 대입이 단 한 번만 이뤄진다.

val 식별자 = 초기화

 

val 키워드는 값(value)을 뜻하며, 값이란 변할 수 없는 것을 가리킨다.

  • val 변수는 불변(immutable)이다.
fun main() {
    val number = 8
    // number = 5 // 오류
    val pi = 3.14
    val words = "Hello Kotlin!"

    println(number)
    println(pi)
    println(words)
}
// 출력
8
3.14
Hello Kotlin!
  • val을 초기화하고 나면 값을 재대입할 수 없다. number에 다른 값을 대입하려고 시도하면 Val cannot be reassigned라는 에러가 발생한다.

 

var은 프로그램이 실행될 때 변경되어야만 하는 값을 표현할 경우 유용하다. 값이 변경되어야만 하는 경우는 자주 있을 법한 요구 사항으로 보이지만, 대부분의 경우 이를 피해 갈 수 있다.

val만 사용하면 프로그램을 확장하고 유지 보수하기 더욱 쉬어지지만, 문제를 해결하기 위해 복잡해지는 경우도 있다.

하지만, 프로그래밍을 하다 보면 var이 필요한 경우가 거의 없다는 사실과 var을 사용하지 않으면 프로그램이 더욱 안전해지고 신뢰성도 높아진다는 사실을 알게 될 것이다.

 

 

식별자 이름

식별자에 이름을 붙일 때 좀 더 서술적인 이름을 붙이면 코드를 이해하기 쉽고 주석을 추가할 필요성도 줄어든다. 예를 들어, number라는 이름은 숫자를 의미하긴 하지만, 정확히 어떤 숫자를 의미하는지 파악하기는 어렵다. 반면에 pi라는 이름은 원주율을 의미하는 이름으로 쉽게 파악할 수 있다.

따라서, 만약 number에 대입한 8이 사람의 나이를 뜻한다면 age 또는 personAge 등 구체적인 식별자를 사용하는 것이 좋다.

 

 

참고 서적

https://link.coupang.com/a/bdjMkA

 

아토믹 코틀린:코틀린 컴파일러 개발자가 알려주는 코틀린 기본기 87

COUPANG

www.coupang.com

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

반응형