Я пытаюсь улучшить код с помощью инфикса:
Рабочий код (но довольно уродливый ...):
fun test (possibleEmptyString: String?, anotherPossibleEmptyString : String?): String {
var test: String? = possibleEmptyString
// If null or empty
if(test!=null && !"".equals(test)) {
test = anotherPossibleEmptyString
}
// If null or empty
if(test!=null && !"".equals(test)) {
test = "a known string"
}
return test!!
}
Я хочу улучшить читабельность следующим образом:
fun test (possibleEmptyString: String?, anotherPossibleEmptyString : String?): String {
return (possibleEmptyString orIfNullOrEmpty anotherPossibleEmptyString orIfNullOrEmpty "a known string")!!
}
infix fun String?.orIfNullOrEmpty(other: String?): String? {
if (this != null && !"".equals(this)) {
return this
}
return other
}
Это работает, но я думаю, что это может быть улучшено