코틀린 변수 Kotlin variable
코틀린 변수 관련해서 간단하게 알아보는 시간을 가졌었습니다.
글을 다시 살펴보니 변수란 무엇인가? 에서 끝난 느낌이더군요.. ;;
코틀린 변수 관련이니 코틀린에서의 변수에 대한 내용을 추가하고자 글을 작성합니다.
이전 글을 읽어주셨다는 가정 하에 진행합니다.
이번 글은 코틀린 변수 관련해서 변수 자체에 대한 내용보다는 코틀린 변수 문법에 대한 내용에 집중하겠습니다.
Think-about ~ Kotlin!
코틀린 변수 타입 지정과 타입 추론
이전 글을 통해서 변수명 뒤에 콜론(:)을 추가하여 타입을 명시할 수 있다고 설명드렸습니다.
하지만 코틀린에서는 값을 통해 타입을 유추할 수 있을 때는 생략할 수 있겠습니다.
val data1: Int = 10
val data2 = 10
data1이라는 코틀린 변수 명 뒤에 콜론(:)을 추가하여 Int 타입을 명시하고 10이라는 값을 대입했습니다.
data2라는 코틀린 변수에 타입을 명시하지 않고 10이라는 값을 바로 대입했습니다.
data1의 경우 코틀린 변수 타입 지정, data2의 경우 코틀린 변수 타입 추론에 해당됩니다.
실제로 다음과 같이 실험해보면 두 변수 모두 Int 타입을 가집니다.
초깃값 할당
코틀린 변수 관련해서 초기화 부분에 집중할 필요가 있습니다.
최상위에 해당하는 부분에 선언된 코틀린 변수, 클래스의 멤버 변수는
코틀린 변수 선언을 할 때 초깃값을 할당해야 합니다.
함수 안에 선언된 코틀린 변수는 선언할 때 초기값을 할당하지 않아도 됩니다.
단, 변수를 사용하려면 값을 할당하고 이용해야 합니다.
위 두 가지 코틀린 변수 문법이 조금 헷갈릴 수 있습니다.
"변수를 사용하려면 변수가 초기화되어있어야 한다!"는 꼭 알고 가셔야 합니다.
코틀린 변수 lateinit lazy
위에서 최상위 변수나 클래스의 멤버 변수는 코틀린 변수 선언을 할 때 초깃값을 할당해야 한다고 했습니다.
그렇다면 다음과 같은 의문이 들어야 합니다.
초깃값을 할당할 수 없는 상황이라면?
- kotlin lateinit
lateinit var data : String
위와 같이 코틀린 변수 앞에 lateinit 키워드를 붙여주면 됩니다.
하지만 항상 사용가능한 것은 아닙니다.
○ var 키워드로 선언한 변수에만 사용 가능
○ Int, Long, Short, Double, Float, Boolean, Byte 타입에는 사용 불가
- kotlin lazy
val data : String by lazy{
println("Initializing data...")
"Think-About"
}
fun main() {
println("Hello, world!!!")
println(data)
}
lazy 키워드는 코틀린 변수 뒤에 by lazy { }가 붙습니다.
중괄호 안에 변수가 초기화 되면서 진행되어야 할 작업을 넣으시면 됩니다.
위와 같이 여러 줄로 작성한다면 마지막 줄의 실행 결과가 변수의 초깃값으로 들어갑니다.
이해가 잘 되셨나요?
코틀린으로 코딩할 때 꼭 필요한 개념입니다.
잘 이해되지 않는 부분은 댓글로 남겨주시면 도와드리겠습니다.
정말 이해됐는지 확인하기 위해서 아래 링크에 들어가셔서 연습하시는 것을 추천드립니다.
이번 글은 여기까지입니다.
Think-about ~ Kotlin!
'Programming language > Kotlin' 카테고리의 다른 글
코틀린 함수 정의 및 호출하기 (0) | 2022.08.03 |
---|---|
코틀린 조건문 Kotlin Conditions (0) | 2022.08.02 |
코틀린 변수 데이터 타입 (0) | 2022.07.29 |
코틀린 변수 Kotlin variable (0) | 2022.02.20 |
코틀린 시작하기 Kotlin getting started (0) | 2022.01.31 |