gpt4 book ai didi

scala - 有没有办法在 a 中声明隐式 val 以进行理解?

转载 作者:行者123 更新时间:2023-12-03 01:16:20 24 4
gpt4 key购买 nike

我有一些代码对 flatMap 进行嵌套调用,如下所示:

foo.flatMap(implicit f => bar(123).flatMap(b =>
/* and so on... implicit f is still in scope here.*/
))

通常,人们会将其写为 for 理解,这使得代码更具可读性:

for {
f <- foo
b <- bar(123)
/* yet more method calls that need f as an implicit parameter*/
}

但是我需要 f 是隐式的,并且我没有找到一种方法可以通过理解来做到这一点。有没有?当然,我可以显式地传递 f ,但这意味着再见漂亮的 DSL。我对 Scala 2.9 和 2.10 的答案都很感兴趣。

需要明确的是,我想做这样的事情,但它不会编译:

for {
implicit f <- foo
b <- bar(123) //bar takes implicit argument
/* yet more method calls that need f as an implicit parameter*/
}

编辑:也许功能请求是个好主意?

EDIT2: 这应该适用于可在 for 理解中使用的所有类型,因此不仅仅适用于 ListSeq< 等常见集合类型,但也有 Future

最佳答案

不,没有。不过有一张票:https://issues.scala-lang.org/browse/SI-2823

关于scala - 有没有办法在 a 中声明隐式 val 以进行理解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14073239/

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