[kotlin] 변수

hyooosong·2020년 12월 8일
0

kotlin의 변수 선언으로는 두 가지 종류가 있다.

1. val a : Int = 1
2. var b : Int = 2

val -> 값 변경 불가, final과 같은 효과
var -> 값 변경 가능, 일반 변수 선언과 유사

kotlin은 NULL 허용하지 않음.
따라서 변수 선언과 동시에 초기화가 무조건 필요하다.

그렇다면, 초기화를 미루고 싶을 때는 ? -> "lateinit" 이용

private lateinit var a : String

lateinit 의 조건

  • var (변경 가능 변수) 만 가능
  • 주 생성자에서는 사용 불가
  • null 허용 프로퍼티에 사용 불가
  • 기초 타입 프로퍼티에 사용 불가

그렇다면, 기초 타입( = Int )일 때 초기화를 미루는 방법은? -> "Delegates" 이용

private var b by Delegates.notNull<Int>()

Type? : null 가능한 타입, null이 아닐 때 처리

var case1 : Int? = null

case2의 값을 case1로 지정, case1이 null일 경우, 우항의 값 3을 default로 지정

var case2 : Int = case1 ?: 3


Nullable Type에 !! 를 추가하게 되면 강제로 notNull 타입으로 처리 가능

  • 프로그래머가 해당 변수는 null이 아니라고 확신하기 때문
fun main() {
    var s : String? = null
    s = "song"
    val name : String = s!!
}

0개의 댓글

관련 채용 정보