繁体   English   中英

Scala ExecutionContext 是 Class 还是 Method 参数更惯用?

[英]Is Scala ExecutionContext as Class or Method parameter more idiomatic?

是否更惯用 Scala按照方法传入ExecutionContext

class Foo {
    def bar(a: Int, b: Int)(implicit ec: ExecutionContext): Future[Int] = {
        Future(a + b)
    }

    def baz(a: Int, b: Int)(implicit ec: ExecutionContext): Future[Int] = {
        Future(a - b)
    }
}

或者更好地按照 class 传入ExecutionContext

class Foo(implicit ec: ExecutionContext) {
    def bar(a: Int, b: Int): Future[Int] = {
        Future(a + b)
    }

    def baz(a: Int, b: Int): Future[Int] = {
        Future(a - b)
    }
}

在 Scala 世界中,一种风格通常更受欢迎,因为它带来的惊喜更少,更容易阅读,还是出于其他原因? 如果可能,请提供一些参考。

这两个选项具有不同的语义,因此都不是惯用的。

第一个选项允许调用者在调用时指定执行上下文,并允许不同的上下文用于不同的调用。

第二个选项要求所有调用都使用相同的上下文。

选择取决于您想要的 class 和方法的语义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM