본문 바로가기

안드로이드/코틀린

변수

본 내용은 필자가 공부한 내용을 정리한 것으로 틀리거나 잘못된 내용이 있을 수 있습니다.


코틀린에는 변수를 선언하는 방법이 간단하게도 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