반응형
null(?)
- 코틀린에서 null 값을 허용하기위해 자료형 오른쪽에 ? 기호를 붙여주면 null값을 허용함.
- !! : null허용 자료형을 허용하지 않는 자료형에 넣을때 사용
val a: String //에러! 초기화를 해줘야합
val b: String = null //에러! 코틀린은 기본적으로 null을 허용하지 않음.
val c: String? = null //OK
//!! : null허용 자료형을 허용하지 않는 자료형에 넣을때 사용
val name: String? = "Joy"
val name2: String? = name //OK
val name3: String = name //ERROR
val name4: String = name!! //OK
//안전한 호출(?)
val str: String? = null
var upperCase = if (str != null) str else null //null
upperCase = str?.toUpperCase() //null
//엘비스 연산자(?:)
upperCase = str?.toUpperCase() ?: "str이 null입니다"
lateinit
- 먼저 선언하고 뒤에 초기화를 하겠다고 선언
- var 변수만 가능, null 초기화 되지않음, 초기화전에 사용 못함
- Int, Long, Double, Float 에서 사용불가
lateinit var str: String
str = "Hi Joy"
println(str)
lazy
- String자료형을 첫회 사용시 초기화루틴 진입
val str: String by lazy {
println("초기화")
"Hi Joy" //
}
println(str) // 초기화, Hi Joy
println(str) // Hi Joy
반응형
'안드로이드(Kotlin)' 카테고리의 다른 글
Android(Kotlin) 람다(Lambda), SAM변환, 확장함수(기존클래스에 함수 추가) (0) | 2021.11.20 |
---|---|
Android(Kotlin) Array, List, Map, Set (0) | 2021.11.20 |
Android(Kotlin) 인터페이스(interface) (0) | 2021.11.20 |
Android(Kotlin) 클래스(class) - 선언, 상속, 내부, 추상, 데이터 (0) | 2021.11.20 |
Android(Kotlin) String(문자열) 다루기 (0) | 2021.11.20 |
최근댓글