seoft

kotlin extension 응용 본문

android

kotlin extension 응용

seoft 2020. 2. 19. 21:06

기존에 if 로 널처리 혹은 특정 처리 후 코드를 이어갈라면 코드가 길어지고, 뎁스가 깊어지는 경우 도 있다. 

다음 처럼 사용하면 더 간결하게, 직관적으로 사용할 수 있다.

 

// 정의
fun String?.exist(completion: (String) -> Unit): String? {
return if (this.isNullOrBlank()) {
null
} else {
completion(this)
this
}
}
// 사용
"this_is_string_or_null".exist {
println(it)
}
// 정의
fun <T> SingleEmitter<T>.live(): SingleEmitter<T>? {
return if (this.isDisposed) {
null
} else {
this
}
}
// 사용
Single.create<Int> { emitter ->
emitter.live()?.onSuccess(123)
}
Comments