Scala:具有参数或泛型类型参数的方法,该方法返回Future

用户名

我的标题可能不是描述我试图理解的有问题的代码段:

这是一段代码:

def getMeConcurrentInputStream[A, I <: InputStream](in:I)(fn:I => A):Future[A] = {
    future {
      fn(in)
    }andThen {
      case all => in.close()
    }
  }

我正在尝试了解该功能的用途。这是什么:

[A, I <: InputStream](in:I)(fn:I => A)

这是什么: (in:I)(fn:I => A)

并且该函数正在返回Future?我将如何解释:Future[A]

我如何解释以上所有内容?我如何通过从代码中的其他地方调用它来使用此函数?

保罗·德雷珀
def getMeConcurrentInputStream

功能命名 getMeConcurrentInputStream

[A, I <: InputStream]

与一般类型A和类型IInputStream或它的一个子类。

(in:I)(fn:I => A)

具有的参数列表I和接受I并返回的函数的参数列表A

:Future[A] = {

返回Future类型的A

future {

Future在范围内隐式创建一个ExecutionContext

fn(in)

而Future会fn使用arguments调用该函数in

}andThen {

后记,无论是成功还是失败,

case all =>

在所有情况下

in.close()

调用.close()in


此函数将涉及InputStreamin的某些操作包装起来Future并在完成后将其关闭。

例如,假设我要异步读取文件的第一个字节,然后将其打印出来。我可以这样做:

val fileInputStream = new FileInputStream("example.txt")
val myFuture = getMeConcurrentInputStream(fileInputStream) { inputStream =>
    inputStream.read()
}
myFuture.map(println)

就个人而言,我看不到此功能有什么用,但是您可以使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Scala:具有参数或泛型类型参数的方法,该方法返回Future

来自分类Dev

具有类型依赖参数的 TypeScript 泛型方法

来自分类Dev

具有参数类型限制的泛型不能传递给具有非泛型参数的方法

来自分类Dev

具有不同类型泛型参数的方法的泛型类

来自分类Dev

在TypeScript中,如何获取具有多个类型参数的方法中的泛型类型参数?

来自分类Dev

Java泛型-具有“扩展”类型的集合参数的方法拒绝有效的参数?

来自分类Dev

Kotlin抽象类,具有泛型参数和使用类型参数的方法

来自分类Dev

如何实现Java方法在Scala中返回使用数组参数化的泛型类型?

来自分类Dev

具有泛型方法和参数的重载方法

来自分类Dev

c#中具有多个类型参数的泛型方法

来自分类Dev

具有相同泛型参数的重载方法?

来自分类Dev

具有可选泛型参数的扩展方法

来自分类Dev

无法模拟具有泛型参数的方法

来自分类Dev

从具有泛型参数的子类方法调用构造函数

来自分类Dev

具有可为空参数和返回类型的泛化方法

来自分类Dev

具有泛型返回类型的vararg方法中的@SafeVarargs

来自分类Dev

如何继承具有不同泛型返回类型的方法

来自分类Dev

为泛型方法传递具体类型参数时,返回泛型IEnumerable

来自分类Dev

带有泛型类型的函数参数的泛型类方法不适用于Void

来自分类Dev

将具有泛型参数的静态方法转换为泛型类

来自分类Dev

C#泛型类作为参数,与泛型类的调用方法具有相同的T

来自分类Dev

具有两个泛型参数的C#中的泛型方法

来自分类Dev

C#泛型类作为参数,与泛型类的调用方法具有相同的T

来自分类Dev

具有多个类型参数的泛型推断类型

来自分类Dev

如何在Scala中设置绑定的类型参数以使数字具有泛型功能?

来自分类Dev

如何在Scala中设置绑定的类型参数以使数字具有泛型功能?

来自分类Dev

如何实现工厂特征返回具有匹配类型参数的泛型值?

来自分类Dev

泛型-调用带有泛型参数的方法

来自分类Dev

Scala特征相同的方法和参数具有不同的返回类型

Related 相关文章

  1. 1

    Scala:具有参数或泛型类型参数的方法,该方法返回Future

  2. 2

    具有类型依赖参数的 TypeScript 泛型方法

  3. 3

    具有参数类型限制的泛型不能传递给具有非泛型参数的方法

  4. 4

    具有不同类型泛型参数的方法的泛型类

  5. 5

    在TypeScript中,如何获取具有多个类型参数的方法中的泛型类型参数?

  6. 6

    Java泛型-具有“扩展”类型的集合参数的方法拒绝有效的参数?

  7. 7

    Kotlin抽象类,具有泛型参数和使用类型参数的方法

  8. 8

    如何实现Java方法在Scala中返回使用数组参数化的泛型类型?

  9. 9

    具有泛型方法和参数的重载方法

  10. 10

    c#中具有多个类型参数的泛型方法

  11. 11

    具有相同泛型参数的重载方法?

  12. 12

    具有可选泛型参数的扩展方法

  13. 13

    无法模拟具有泛型参数的方法

  14. 14

    从具有泛型参数的子类方法调用构造函数

  15. 15

    具有可为空参数和返回类型的泛化方法

  16. 16

    具有泛型返回类型的vararg方法中的@SafeVarargs

  17. 17

    如何继承具有不同泛型返回类型的方法

  18. 18

    为泛型方法传递具体类型参数时,返回泛型IEnumerable

  19. 19

    带有泛型类型的函数参数的泛型类方法不适用于Void

  20. 20

    将具有泛型参数的静态方法转换为泛型类

  21. 21

    C#泛型类作为参数,与泛型类的调用方法具有相同的T

  22. 22

    具有两个泛型参数的C#中的泛型方法

  23. 23

    C#泛型类作为参数,与泛型类的调用方法具有相同的T

  24. 24

    具有多个类型参数的泛型推断类型

  25. 25

    如何在Scala中设置绑定的类型参数以使数字具有泛型功能?

  26. 26

    如何在Scala中设置绑定的类型参数以使数字具有泛型功能?

  27. 27

    如何实现工厂特征返回具有匹配类型参数的泛型值?

  28. 28

    泛型-调用带有泛型参数的方法

  29. 29

    Scala特征相同的方法和参数具有不同的返回类型

热门标签

归档