gpt4 book ai didi

Scala - 元组上的 Future.sequence

转载 作者:行者123 更新时间:2023-12-02 09:13:51 25 4
gpt4 key购买 nike

我有一个元组序列:

val seqTuple: Seq[(String, Future[String])] = Seq(("A", Future("X")), ("B", Future("Y")))

我想得到:
val futureSeqTuple: Future[Seq[(String, String)]] = Future(Seq(("A", "X"), ("B", "Y")))

我知道我可以做到:
val futureSeq: Future[Seq[String]] = Future.sequence(seqTuple.map(_._2))

但我丢失了元组中的第一个字符串。

获得 Future[Seq[(String, String)]] 的最佳方式是什么? ?

最佳答案

首先使用元组中的 future 将每个元组映射到元组的 future ,
然后顺序:

Future.sequence(
seqTuple.map{case (s1, fut_s2) => fut_s2.map{s2 => (s1, s2)} }
)

一步一步,从内部术语到外部术语:
  • 内部map转换 Future("X")Future(("A", "X")) .
  • map转换每个 ("A", Future("X"))Future(("A", "X")) ,从而给你一个 Seq[Future[(String, String)]] .
  • 现在您可以使用 sequence在那获得Future[Seq[(String, String)]]
  • 关于Scala - 元组上的 Future.sequence,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49122579/

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