gpt4 book ai didi

kotlin - 映射单个对象的惯用方式

转载 作者:行者123 更新时间:2023-12-02 13:07:29 25 4
gpt4 key购买 nike

这是执行短路搜索并将结果映射到Boolean的惯用方式吗?

val foos = mutableListOf<Foo>()
...
fun fooBar(bar: Bar) = if (null != foos.find { it.bar == bar }) true else false

基本上,我一直在寻找与
fun Any?.exists() = null != this
fun fooBar(bar: Bar) = foos.find { it.bar == bar }.exists()

对于可能返回 null的任何内容,这似乎都是有用的模式。

编辑:

我决定编写类似于 filterIsInstance()的简单扩展功能:
inline fun <reified R> Iterable<*>.findIsInstance(): R? {
for (element in this) if (element is R) return element
return null
}

用法示例:
val str = list.findIsInstance<String>() ?: return

最佳答案

我相信您正在寻找 any ,如果任何元素匹配给定谓词,则返回true,并且正在短路

fun fooBar(bar: Bar) = foos.any { it.bar == bar }

关于kotlin - 映射单个对象的惯用方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62364570/

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