gpt4 book ai didi

scala - 如何产生多个值?

转载 作者:行者123 更新时间:2023-12-01 23:37:07 24 4
gpt4 key购买 nike

我有一个这样的理解:

val ao = Option(1)
val bo = Option(2)
val (x,y) = for (a <- ao; b <- bo) yield (a+b, b+a*2)

但是这不起作用。对于理解返回 Option[(Int,Int)] 但不能分配给单独的 x 和 y。

如果我这样做:

val Some((x,y)) = for ...

当 yield None 时会引发异常。

如何实现这个目标?我希望 x 和 y 为 Option[Int]。我希望找到一个优雅的解决方案,而不用像 x._1x.getOrElse,或 match

最佳答案

应该unzip,但不幸的是,unzip返回List,而不是Option 最短的解决方法可能是:

val pairOpt = for (a <- ao; b <- bo) yield (a+b, b+a*2)
val (x, y) = (pairOpt.map(_._1), pairOpt.map(_._2))

关于scala - 如何产生多个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52895233/

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