안녕하세요. 프로나인 입니다.
코틀린 변수 선언 방법에 대해 알아보도록 하겠습니다.
코틀린 변수 선언 형태
코틀린 변수는 자바와 다르게 변수형태 선언이 변수명 뒤에 붙습니다.
//var 변수명 : 변수타입 = 초기화
//val 변수명 : 변수타입 = 초기화
var name : String = "pronine"
val name : String = "pronine"
그런데 자바와는 또 다르게 변수 선언 앞에 var 와 val 이 있는것을 볼 수 있습니다.
이 친구들은 왜 사용을 하며, 어떤 의미로 사용되는지 아래에서 확인해보시죠!👊
var 과 val 의 차이🧐
코틀린은 자바와 다르게 변수 선언시 var 과 val 을 사용하여 타입 선언 없이 바로 값을 할당할 수 있습니다.
- var = variable의 약어, 변경이 가능(mutable)한 변수 (자바 - 일반 변수와 같다.)
- val = value의 약어, 변경 불가능(immutable)한 변수 (자바 - final에 해당한다.)
공통적으로 초기화를 할 때 값을 할당하지 않는다면 반드시 변수타입을 명시 해주어야 합니다.
안그러면 아래와 같이 에러 발생합니다.
아래처럼 초기화를 할 때, 변수타입을 지정해주면 에러가 발생하지 않는것을 확인 할 수 있습니다.
당연한 말이지만 변수 초기화 후 변수 값을 할당하지 않은 상태에서 해당 변수를 사용할 경우 initialized 에러가 발생합니다.
자! 그러면 val 으로 변경 불가능한 변수로 선언 하였는데, 진짜 변경이 불가능한지 확인해볼까요 ?
에러 메세지 - 'Val cannot be reassigned' 번역해보면, Val은 재할당할 수 없습니다.
재할당할 수 없다면서 'Change to var' 을 권유하고 있는것을 확인 할 수 있는데요.
그럼 var 은 변경 가능 변수로 선언 이라 하였는데, 진짜 변경이 가능할까요 ?
age 변수를 15 -> 27 로 값을 할당 하였습니다.
아래 결과 확인해보니까 진짜 변경이 가능한 것을 확인 할 수 있네요 !
그렇다면 변수 선언을 할 때, val 을 사용해야해?? var 을 사용해야해?? 라고 고민하실텐데
저는 val로 먼저 선언을 하고 나중에 해당 변수를 재할당 해야할 때 var로 바꿔서 사용하고 있습니다.
물론 이 방법이 정해진 것은 아니지만 저는 이 방법으로 사용하니까 다른 변수 값들이 바뀌는 위험도 줄어들고 하니까 좋더라구요.
(참고로만 생각하세요! 사용법은 여러분 마음입니다. 😁)
댓글