코드 여행 일기

코틀린의 val과 var: 무엇을 선택해야 할까? 본문

코딩/kotlin

코틀린의 val과 var: 무엇을 선택해야 할까?

할짝개발자 2024. 5. 23. 17:17
728x90
반응형

 

코틀린(Kotlin)은 그 간결하고 현대적인 문법 덕분에 많은 개발자들 사이에서 인기를 얻고 있습니다.

코틀린을 배우는 과정에서 가장 기본적이면서도 중요한 개념 중 하나가 바로 변수 선언입니다.

특히, val과 var의 차이를 이해하는 것은 필수적입니다.

이번 포스트에서는 val과 var의 차이점과 사용 방법을 예제와 함께 자세히 알아보겠습니다.

 


val (Value)

val은 불변 변수를 선언할 때 사용합니다. 한 번 초기화되면 그 값을 변경할 수 없습니다.

이는 자바의 final 변수와 유사한 역할을 합니다.

val name: String = "Kotlin"
name = "Java" // 컴파일 오류: Val cannot be reassigned

val age: Int = 10
age = 15 // 컴파일 오류: Val cannot be reassigned

 

위 예제에서 볼 수 있듯이, val로 선언된 변수는 한 번 값이 할당되면 다시 값을 할당할 수 없습니다.

이는 코드의 예측 가능성을 높여주고, 의도치 않은 값 변경으로 인한 버그를 방지하는 데 도움이 됩니다.

 

var (Variable)

 

반면, var는 가변 변수를 선언할 때 사용합니다. 초기화 후에도 값을 변경할 수 있어 필요에 따라 값을 여러 번 수정할 수 있습니다

var language: String = "Kotlin"
language = "Java" // 문제 없음

var count: Int = 10
count = 15 // 문제 없음

 

var로 선언된 변수는 초기화 이후에도 자유롭게 값을 변경할 수 있어, 상태가 변하는 데이터를 다룰 때 유용합니다.

 

예제: val과 var의 실제 사용

 

좀 더 복잡한 예제를 통해 val과 var의 차이를 살펴보겠습니다.

fun main() {
    val immutableList = listOf(1, 2, 3)
    // immutableList.add(4) // 컴파일 오류: Unresolved reference: add

    val mutableList = mutableListOf(1, 2, 3)
    mutableList.add(4) // 문제 없음
    println(mutableList) // [1, 2, 3, 4]

    val name = "Alice"
    // name = "Bob" // 컴파일 오류: Val cannot be reassigned

    var age = 25
    age = 26 // 문제 없음
    println("Name: $name, Age: $age")
}

 

  • immutableList는 val로 선언되었기 때문에 새로운 리스트를 할당할 수 없으며, 이 리스트는 불변 리스트이기 때문에 요소를 추가하거나 변경할 수 없습니다.
  • mutableList는 val로 선언되었지만, 가변 리스트이기 때문에 요소를 추가할 수 있습니다.
  • name은 val로 선언되어 한 번 초기화된 이후 변경할 수 없습니다.
  • age는 var로 선언되어 값이 변경될 수 있습니다.

 

언제 val을 사용하고, 언제 var를 사용할까?

 

  • 기본적으로 val을 사용하는 것이 좋습니다. 불변 변수를 사용하면 코드의 안정성과 유지보수성이 향상됩니다.
  • 꼭 필요한 경우에만 var를 사용하여 가변 상태를 최소화하는 것이 좋습니다.

 


 

코틀린에서 val과 var의 사용은 코드의 가독성과 안정성을 높이는 중요한 요소입니다.

이를 적절히 사용하여 더 나은 코드를 작성해보세요!

728x90
반응형