gpt4 book ai didi

scala - 如何映射仅从Scala的左值?

转载 作者:行者123 更新时间:2023-12-04 01:56:21 27 4
gpt4 key购买 nike

考虑一个代码:

val some: OneCaseClass Either TwoCaseClass = ???
val r = some.left.map(_.toString)


为什么用 Serializable with Product with Either[String, TwoCaseClass]类型而不是 Either[String, TwoCaseClass]类型?

如何只映射左值?

最佳答案

因为那是LeftProjection.map的返回类型。

map[X](f: (A) ⇒ X): Product with Serializable with Either[X, B]


但这不是问题。您可以根据需要使用类型说明:

val r: Either[String, TwoCaseClass] = some.left.map(_.toString)


看一下 Either docs上的示例:

val l: Either[String, Int] = Left("flower")
val r: Either[String, Int] = Right(12)
l.left.map(_.size): Either[Int, Int] // Left(6)
r.left.map(_.size): Either[Int, Int] // Right(12)
l.right.map(_.toDouble): Either[String, Double] // Left("flower")
r.right.map(_.toDouble): Either[String, Double] // Right(12.0)

关于scala - 如何映射仅从Scala的左值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32242136/

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