gpt4 book ai didi

list - Kotlin 将集合中的 isEmpty()&last() 替换为 lastOrNull()

转载 作者:行者123 更新时间:2023-12-01 04:37:38 26 4
gpt4 key购买 nike

我想使用类似(下面的代码)的东西,但我认为必须有一个更好的解决方案,使用 lastOrNull() 而不是使用 isEmpty最后()

data class Entry(val x: Float, val y: Float)

var entries: MutableList<Entry> = ArrayList()
if(some) {
entries.add(Entry(100f, 200f)
}
val foo = (if (entries.isEmpty()) 0f else entries.last().y) + 100f

有没有更好的方法,比如 entries.lastOrNull()?.y if null 0f

最佳答案

您可以使用 Kotlin elvis operator ?:,例如:

//   if the expression `entries.lastOrNull()?.y` is null then return `0f` 
// v
val lastY = entries.lastOrNull()?.y ?: 0f

对于上面代码中的表达式,您可以使用 safe-call ?.let/?.run 让你的代码更清晰,例如:

//val foo = if (entries.isEmpty()) 0f else entries.last().y + 100f else 100f

// if no Entry in List return `0F` ---v
val foo = entries.lastOrNull()?.run { y + 100 } ?: 0F
// ^--- otherwise make the last.y + 100

关于list - Kotlin 将集合中的 isEmpty()&last() 替换为 lastOrNull(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45055677/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com