gpt4 book ai didi

scala - 有条件的理解

转载 作者:行者123 更新时间:2023-12-02 17:19:59 29 4
gpt4 key购买 nike

我有调用多个 future 的现有代码。示例:

val result = for {
_ <- future1 // Fire and forget call
r2 <- future2
r3 <- future3
} yield (r2,r3)

我想做的是有条件地做 _ <- future1 .我想做的是

val result = for {
if(shouldFireAndForget) {_ <- future1 }// Fire and forget call
r2 <- future2
r3 <- future3
} yield (r2,r3)

shouldFireAndForget value 是一个 bool 值,例如可以从配置文件中读取。如果它设置为 true我想制作 future1打电话如果false我不想。上面的代码显然是不正确的,但我很困惑如何在不复制一堆代码的情况下做到这一点。任何建议表示赞赏。

最佳答案

你可以尝试这样的事情:

val result = for {
_ <- if (!shouldFireAndForget) future1 else Future.successful(())
r2 <- future2
r3 <- future3
} yield (r2,r3)

“技巧”是 if 的结果,无论哪种情况,它都必须是 future。

关于scala - 有条件的理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43534499/

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