从Chuusai阅读此博客post,它说:
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
[Int,String]可以模拟联合类型Int∨String,因为 两种类型之间存在同构性及其值
“两种类型之间是否存在同构及其价值”是什么意思?
答案 0 :(得分:0)
首先,您必须在Scala的上下文中定义术语“值”。我假设这意味着具有该类型的规范表达式,表达式为左( n )或右( s )表示常量整数 n 或字符串 s 。然后同构是直接映射到数学类型Int∪String。但是,例如,null或Right(null)呢?这些映射下有这些图像吗?对我来说似乎并不完全同构。