显示年龄大于等于18岁,用符号","拼接名字再显示,写的很糟糕
data class Bean(
val gender: Int,
val name: String
)
fun displayStringFromList(gender: Int): String {
val filterList = list.filter { bean -> bean.gender >= gender }
val sb = SpannableStringBuilder()
var n = 0
filterList.forEach {
if (n == 0) {
sb.append("${it.name}")
} else {
sb.append(",${it.name}")
}
n++
}
return sb.toString()
}
回炉后:
fun displayStringFromList(gender: Int): String =
lotInventory.filter { it.gender >= gender }.joinToString(", ") { it.name }
cc:直接带入条件
fun displayStringFromList(filterCondition: (Bean) -> Boolean): String =
list.filter { filterCondition.invoke(it) }.joinToString(", ") { it.name }
data class Bean(
val gender: Int,
val name: String
){
fun isGenderShow() = gender >= 18
}
displayStringFromList{it.isGenderShow()}