반응형
http://blog.karumi.com/kotlin-android-development-6-months-into-it/
-
when 을 expression 으로 사용될 때에는 cover 하지 않는 케이스에 대한 else 가 꼭 필요하다.
하지만 statement 로 사용될 때에는 꼭 쓰지 않아도 괜찮다. (강요되지 않는다.)
이 때문에 모든 case 를 커버하는지 알 수 없었다.
아래와 같이 Any? 에 대한 extension 으로 exhaustive 를 줌으로써 expression 처럼 쓰도록 하여 에러를 줄일 수 있다.
val Any?.exhaustive get() = Unit private fun onStatusChanged(status:Status){ when(status){ is Status.Idle -> // ... is Status.Fetching -> // … is Status.Fetched -> // ... }.exhaustive }
-
끝!!!
반응형
'프로그래밍 놀이터 > Kotlin, Coroutine' 카테고리의 다른 글
[Kotlin] check lateinit is initialized (safely accessing lateinit vars) (0) | 2020.08.12 |
---|---|
[Kotlin] Kotlin 으로 build gradle 을 작성하자! (0) | 2020.08.10 |
[kotlin] Sealed class 를 이용하여 error 를 다루는 방법 (1) | 2020.08.08 |
[Kotlin] Coroutine 에 대한 이해 : 기본 용어 및 사용 (0) | 2020.08.07 |
[Koin] Koin 에 대해 알아보자 (tutorial) (0) | 2020.08.06 |
댓글