티스토리 뷰
반응형
코틀린에서 변수앞에 :: (더블 콜론)을 명시하면 변수를 객체로 액세스 하여 객체에 대한 속성을 참조 할수 있습니다.
val x = 1
fun main(args: Array<String>) {
println(::x.get())
println(::x.name)
}
// 실행 결과
// 1
// x
코틀린은 기본적으로 Non-null 타입을 가집니다.
그러므로 항상 값을 초기화를 시켜주거나 null 값을 가질 수 있게 따로 처리해야합니다. (이전 글 참고)
- lateinit 키워드는 초기화를 나중에 할 수 있게 미루는 키워드입니다.
- val은 final 특징을 가지기 때문에 값 수정을 할수 없으므로 lateinit 키워드랑 같이 사용할 수 없습니다.
- primitive type(원시 타입)에서는 사용이 불가능합니다. ex) Double, Float, ...
- 변수에 선택사항인 getter, setter 정의 불가
- 변수의 유형은 null 이 아니어야하기에 null로 초기화 불가 타입 뒤에 ? 사용해도 불가합니다.
lateinit var str: String
lateinit var exClass: ExClass
lateinit var d: Double // 에러
lateinit var f: Float // 에러
lateinit var l: Long // 에러
lateinit var i: Int // 에러
lateinit var s: Short // 에러
lateinit var b: Byte // 에러
lateinit var B: Boolean// 에러
class ExClass() {
}
isInitialized 속성을 이용한 초기화 확인
lateinit var str: String
fun main(args: Array<String>) {
if (::str.isInitialized) println("초기화 완료, $str")
else println("초기화 안됨")
str = "홍길동"
if (::str.isInitialized) println("초기화 완료, $str")
else println("초기화 안됨")
}
/*
실행 결과
초기화 안됨
초기화 완료, 홍길동
*/
위 코드를 이해하기 위해서는 아래 코틀린 문법이 필수입니다.
2019/05/19 - [Kotlin] - 코틀린 기초 문법) 1. 코틀린 변수 정의하기
2019/05/19 - [Kotlin] - 코틀린 기초 문법) 2. 코틀린 함수 정의하기
2019/05/19 - [Kotlin] - 코틀린 기초 문법) 3. 코틀린 문자열 템플릿 String Template
2019/05/19 - [Kotlin] - 코틀린 기초 문법) 4. 코틀린에서 null 사용 및 null 값 처리
2019/05/22 - [Kotlin] - 코틀린 기초 문법) 10. 코틀린 클래스와 생성자, init 키워드 알아보기
반응형
'Kotlin' 카테고리의 다른 글
코틀린 기초 문법) 16. 코틀린 Sealed Class (실드 클래스, 봉인된 클래스) (2) | 2019.05.28 |
---|---|
코틀린 기초 문법) 15. 코틀린 추상 클래스 및 인터페이스 (0) | 2019.05.25 |
코틀린 기초 문법) 13. 코틀린 const (컴파일 타임 상수) (0) | 2019.05.25 |
코틀린 기초 문법) 12. 코틀린 오버라이딩, 오버로딩 알아보기 (0) | 2019.05.24 |
코틀린 기초 문법) 11. 코틀린 상속, open 키워드 알아보기 (0) | 2019.05.23 |
댓글
최근에 올라온 글
최근에 달린 댓글