Programming language/Kotlin

코틀린 변수 Kotlin variable - 2

Think-About 2022. 7. 14. 02:57

코틀린 변수 Kotlin variable

코틀린 변수 관련해서 간단하게 알아보는 시간을 가졌었습니다.

글을 다시 살펴보니 변수란 무엇인가? 에서 끝난 느낌이더군요.. ;;

코틀린 변수 관련이니 코틀린에서의 변수에 대한 내용을 추가하고자 글을 작성합니다.

이전 글을 읽어주셨다는 가정 하에 진행합니다.

 

코틀린 변수 Kotlin variable

코틀린 변수 Kotlin variable Think about ~ Kotlin! 저번 글에서 코틀린에 대해 간략히 알아보고 안드로이드 스튜디오를 통해 Hello World! 문구를 출력해봤습니다. 코틀린 시작하기 Kotlin getting started 코..

think-about.tistory.com

이번 글은 코틀린 변수 관련해서 변수 자체에 대한 내용보다는 코틀린 변수 문법에 대한 내용에 집중하겠습니다.

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 { }가 붙습니다.

중괄호 안에 변수가 초기화 되면서 진행되어야 할 작업을 넣으시면 됩니다.

위와 같이 여러 줄로 작성한다면 마지막 줄의 실행 결과가 변수의 초깃값으로 들어갑니다.

코틀린 변수 lazy 키워드 예시


이해가 잘 되셨나요?

코틀린으로 코딩할 때 꼭 필요한 개념입니다.

잘 이해되지 않는 부분은 댓글로 남겨주시면 도와드리겠습니다.

 

정말 이해됐는지 확인하기 위해서 아래 링크에 들어가셔서 연습하시는 것을 추천드립니다.

 

Kotlin Playground: Edit, Run, Share Kotlin Code Online

 

play.kotlinlang.org

 

이번 글은 여기까지입니다.

Think-about ~ Kotlin!