这是我之前的question的后续版本。注解中注意到toRight
返回Product with Serializable with scala.util.Either
:
scala> val ox = Some(0)
ox: Some[Int] = Some(0)
scala> ox.toRight("No number")
res0: Product with Serializable with scala.util.Either[String,Int] = Right(0)
现在我想知道它与我需要的Either
类型有什么不同。我应该像那样明确地添加Either[String,Int]
吗?
scala> ox.toRight("No number"): Either[String, Int]
res1: Either[String,Int] = Right(0)
1条答案
按热度按时间2vuwiymt1#
类型
只是过于具体,因为编译器能够确定它是
Product
和Serializable
,即使您不关心这些事情。这只是因为编译器总是告诉您它可以确定的最具体的类型,因为它自然无法知道您想要的特定级别。但它告诉您它是with scala.util.Either[String,Int]
,这是您想要的,所以您不需要担心额外的东西。如果您想使类型更简单,那么可以,只需显式声明它即可。