Что если перегрузить некоторый оператор Kotlin
и использовать его следующим образом:
// Inits somewhere before usage.
val someStrFromServer: String?
lateinit var myFieldText: TextView
override fun onStart() {
super.onStart()
myFieldText.text = someStrFromServer / R.string.app_none
}
Перегрузка оператора:
operator fun String?.div(resId: Int): String {
return if (this.isNullOrBlank()) {
context.getString(resId)
} else {
this
}
}
Вывод, если someStrFromServer
ноль:
D/DEBUG: None
Вывод, если someStrFromServer
не нуль:
D/DEBUG: someStrFromServer
Кто-нибудь знает, если в Kotlin
существует более эффективный и короткий путь ксправиться с этим?Возможно, даже больше, global , как extension function
.