2. 변수와 기본 타입 (val vs var)
코틀린은 강력한 타입 추론(Type Inference)을 지원하여 자료형을 생략할 수 있습니다. 변수 선언은 크게 두 가지로 나뉩니다.
val(Value): 한 번 할당하면 바꿀 수 없는 불변(Immutable) 변수입니다. (Java의 final과 유사)var(Variable): 값을 자유롭게 변경할 수 있는 가변(Mutable) 변수입니다.
코틀린은 프로그램의 안전성을 위해 기본적으로 가급적이면 val을 사용하는 것을 강력히 권장합니다.
fun main() {
// val: 불변 변수 (Read-only)
// 우측의 값을 보고 자동으로 Int 타입으로 추론합니다.
val popcormPrice = 5000
// popcormPrice = 6000 // 에러! val은 값을 변경할 수 없습니다.
// var: 가변 변수 (Mutable)
var ticketCount = 2
println("현재 티켓 수: " + ticketCount)
ticketCount = 3 // 값 변경 가능
println("변경 후 티켓 수: " + ticketCount)
// 명시적으로 타입을 선언할 수도 있습니다 (변수명: 타입)
val movieName: String = "인터스텔라"
val rating: Double = 9.8
// 문자열 템플릿($)을 사용하면 Java의 + 연산자나 String.format보다 훨씬 편하게 문자열을 조합할 수 있습니다.
println("영화명: $movieName, 평점: $rating, 티켓 수: $ticketCount")
}