kri*_*ath 2 scala future executioncontext
像这样的方法传递更惯用的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)
}
}
Run Code Online (Sandbox Code Playgroud)
或者更好地通过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)
}
}
Run Code Online (Sandbox Code Playgroud)
是一种样式在Scala世界中通常更受欢迎,是因为它引起较少的惊喜,更易于阅读或其他原因?如果可能,请提供一些参考。
这两个选项具有不同的语义,因此都不是惯用的。
第一个选项允许调用方在调用时指定执行上下文,并允许将不同的上下文用于不同的调用。
第二个选项要求所有调用都使用相同的上下文。
选择取决于类和方法所需的语义。
| 归档时间: |
|
| 查看次数: |
43 次 |
| 最近记录: |