gpt4 book ai didi

scala - 如何简化这种模式匹配?

转载 作者:行者123 更新时间:2023-12-01 08:52:48 25 4
gpt4 key购买 nike

假设我有这样的功能:

def foo(x: Int): Int = ???

def bar(xs: List[Int]): List[Int] = xs map {
case x if (x > 0) => x
case x if (foo(x) > 0) => foo(x) + 1
case _ => 0
}

问题在于 foo 被称为 两次。你会如何编写 bar 来调用 foo 一次?

最佳答案

def foo(x: Int): Int = ???

def bar(xs: List[Int]): List[Int] = xs.map {
x =>
lazy val food = foo(x)
if(x > 0) x
else if (food > 0) food + 1
else 0
}

关于scala - 如何简化这种模式匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37593821/

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