본문
코틀린(Kotlin) 기본 문법 - 4
컴퓨터/이론: 개발 2018. 3. 12. 21:20
도입
지난번 포스팅에서 언급한 것처럼 코틀린의 특징 중 하나는 널 안전성이다. 그래서 자바와 다르게 코틀린에서는 널 안전성을 위해 다양한 기능을 제공한다.
그래서 이번 포스팅에서는 코틀린의 기본 문법 중 널 안전성(NULL Safety)과 관련된 문법을 살펴볼 예정이다.
기본 문법(널 안전성)
1. "?:" 키워드
변수의 값이 NULL 인지 확인 후 NULL이면 설정 값을 반환한다.
1 2 3 4 | // ?: 예제 fun keywordElvisColon(input: String?) { Log.e("heepie", "Input: $input, Result: ${input ?: "NULL"}") } | cs |
2. "?." 키워드
변수의 값이 NULL 인지 확인 후 NULL이 아니면 값을 대입하거나 뒤의 연산 실행
1 2 3 4 | // ?. 예제 fun keywordElvisPoint(input: String?) { Log.e("heepie", "Input: $input, Result: ${input?.substring(2)}") } | cs |
3. "as?" 키워드
자료형 변환이 실패할 경우, 예외 대신 NULL 반환한다. 그래서 값을 통해 반환 결과를 바로 알 수 있다.
1 2 3 4 | // as? 예제 fun keywordAsElvis(input: String?) { Log.e("heepie", "Input: $input, Result: ${input as? Int}") } | cs |
4. "!!" 키워드
NULL 값이 들어갈 수 있는 변수에 NULL이 아니라는 것을 보증하기 위해 사용, 즉 "!!" 키워드를 통해 해당 변수는 NULL이 아니라는 것을 보증
※ 만약 NULL이 들어가면 예외 발생
1 2 3 4 5 6 7 8 | // !! 예제 fun keywordPPoint(isPeople: Boolean, input: String?) { // input이 NULL일 수도 있으므로 실행 불가능, 컴파일 오류 발생 // input.substring(3) // input이 NULL이 아니라는 것을 보장해 컴파일 가능 input!!.substring(3) } | cs |
5. "lateinit" 키워드
키워드를 해석해 보면 "나중에 초기화 한다"는 것이다. 해석처럼 변수를 설정하고 초기화는 나중에 할 경우 사용한다.
예를 들어 데이터 바인딩 기술을 사용할 경우, 바인딩 변수는 설정해 놓고 나중에 초기화 할 수 있다.
1 2 3 4 5 6 7 | // lateinit 예제 lateinit var variable: String fun keywordLateinit() { Log.e("heepie", "lateinit var NOT init " + variable) variable = "Good Day" Log.e("heepie", "lateinit var init " + variable) } | cs |
#코틀린 #kotlin
'컴퓨터 > 이론: 개발' 카테고리의 다른 글
[2018.03.17] 37. RxJava Subject 개념과 종류 (0) | 2018.03.17 |
---|---|
[2018.03.16] 27. type-safe 개념 (0) | 2018.03.16 |
코틀린(Kotlin) 기본 문법 - 3 (0) | 2018.03.12 |
코틀린(Kotlin) 개념과 특징 (0) | 2018.03.10 |
[2018.03.10] 26. 동기식과 비동기식 처리 (0) | 2018.03.10 |
댓글