gpt4 book ai didi

Kotlin闭包解决逻辑和操作

转载 作者:行者123 更新时间:2023-12-02 13:06:37 24 4
gpt4 key购买 nike

我想创建一个闭包,它采用所有 bool 表达式和方法,给出最终结果
像这样的东西

  myAnd{
23<34
false
someFunction() //returns true
}

所以答案是错误的

我带来的解决方案是这个
fun myAnd(vararg flags: Boolean) = flags.all { it }

myAnd(true , false ,someFunction())

但是这种解决方案在使用和操作时不会产生短路的力量

最佳答案

使用 block 来实现短路和

fun someFunction() = true

fun and(vararg parameters: ()->Boolean): Boolean {
return parameters.all { it() }
}

fun main(args: Array<String>) {
and (
{23<34},
{false},
::someFunction
)
}

这是通过将每个谓词作为一个 block 传递来实现的,这意味着它们可以被一个一个地评估,如果它们中的任何一个返回 false,那么所有谓词都将立即返回 false,从而使其余的短路。

关于Kotlin闭包解决逻辑和操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50300199/

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