일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- node.js
- Overloading
- 함수
- Kotlin
- 파이썬
- adapter
- 싱글 스레드
- ListView
- 연산자
- HP
- 배열
- js
- go
- var
- 패널 교체
- Python
- golang
- Java
- 자바
- 리스트 뷰
- 코틀린
- as?
- 자바스크립트
- javascript
- Android
- 안드로이드
- 오버로딩
- 노트북
- Array
- 노트북 추천
Archives
- Today
- Total
Bbaktaeho
코틀린(Kotlin) 14. 스마트 캐스트(smart cast) 본문
반응형
스마트 캐스트)
스마트 캐스트는 코틀린 컴파일러가 똑똑하게 자동으로 변환해주는 기능이다.
명시적 타입 변환할 때 사용하는 as와 as?를 사용한다.
(as, as? 연산자) https://bbaktaeho-95.tistory.com/21
스마트 캐스트는 두 가지 경우에 자동으로 수행되는데 첫 번째로 변수의 값이 null 인지 확인할 때 두 번째로 is, !is 연산자로 변수 타입을 확인할 때 자동으로 수행된다.
먼저 null 인지 확인하는 예제를 보자.
실행 결과는
변수 name은 null이 가능한 String 타입이다. 하지만 if 문에서 변수 name이 null이 아님이 확인됐으므로 null이 불가능한 String 타입으로 변환해준다. 이것을 스마트 캐스트라고 한다. 하지만 if 문 블록 내부에서만 null이 불가능한 String 타입으로 사용할 수 있고 if 문 블록을 벗어나면 스마트 캐스트가 적용되지 않는다.
is, !is 연산자로 변수 타입을 확인하는 예제를 보자.
실행 결과는
smartCast 함수가 매개변수로 Any 타입을 받는다. 여기서 Any타입은 자바에서 Object와 같은 최상위 클래스이다. 코틀린의 모든 클래스는 기본적으로 Any 클래스에서 상속받는다. 따라서 변수 타입을 Any로 지정하면 null이 아닌 어떤 타입의 값도 저장할 수 있다.
반응형
'프로그래밍 (Programming) > 코틀린 (Kotlin)' 카테고리의 다른 글
코틀린(Kotlin) 16. 클래스와 객체(생성자) (0) | 2019.02.22 |
---|---|
코틀린(Kotlin) 15. 함수(fun, named argument, vararg) (0) | 2019.02.22 |
코틀린(Kotlin) 13. NULL 처리, NULL 연산자 (0) | 2019.02.02 |
코틀린(Kotlin) 12. break와 continue (0) | 2019.01.31 |
코틀린(Kotlin) 11. 반복문(for, while, do-while) (0) | 2019.01.31 |