본 내용은 필자가 공부한 내용을 정리한 것으로 틀리거나 잘못된 내용이 있을 수 있습니다.
코틀린에는 변수를 선언하는 방법이 간단하게도 2가지입니다.
바로 var와 val입니다.
var | val | |
공통점 | -컴파일러가 타입을 추론할 수 있는 경우 타입 명시할 필요 없음 -초기화 시 값을 대입하지 않는다면, 타입을 명시해주어야 함 |
|
차이점 | 값이 변경될 수 있음 | 값이 변경될 수 없음 |
C같은 언어를 배우다 코틀린을 배우면 가장 헷갈리는 것 중 하나라고 생각합니다. 물론 익숙해지면 잘 쓰게 됩니다.
헷갈린다면 그냥 다 var로 선언하는 걸 추천합니다. 어차피 그리 해도 상관없습니다. val 썼다가 바꿔야하는 상황을 마주하는 것보다 낫잖습니까
아래의 예시와 함께 보겠습니다.
val a = 10 //a 변수 선언, 타입: Int
var b = "20" //b 변수 선언, 타입: String
val c = true
val c : Boolean = true //타입을 명시해주고 싶을 경우 변수명 뒤에 콜론과 타입이름을 써주면 됩니다.
a = 20 //Error, val의 값은 변경할 수 없습니다.
b = "안녕하세요" //ok
b = 15 //Error, 다른 타입의 값을 대입할 수 없습니다.
타입을 추론할 수 있기에 타입을 굳이 안 써줘도 되지만, 굳이 써주고 싶다면 '변수명: 타입'으로 타입을 명시해 줄 수 있습니다.
자료형의 앞글자는 대문자입니다. 즉, int -> Int, float -> Float, string -> String 등등//
추가로, 그냥 선언한다면, 변수에 null값을 집어넣을 수 없습니다. 변수의 타입 뒤에 물음표를 붙여야 null값을 넣을 수 있습니다
선언은 했는데, 나중에 값을 대입하고 싶다면?
lateinit var을 써보십시오. 선언을 하고 나중에 값을 대입할 수 있습니다. 대신 이 때에는 선언 시 타입을 명시해줘야 합니다.
private lateinit var a : Int
a = 10
'안드로이드 > 코틀린' 카테고리의 다른 글
뷰바인딩 view binding (0) | 2022.05.19 |
---|