阅读 Chuusai 的这篇博文,它说:
def size(x : Either[Int, String]) = x match {
case Left(i) => i
case Right(s) => s.length
}
size(Left(23)) == 23 // OK
size(Right("foo")) == 3 // OK
Either[Int, String] 可以对联合类型 Int ∨ String 建模,因为这两种类型及其值之间存在同构
“两种类型及其值之间存在同构”是什么意思?