1
考虑:指定类型约束约束
sealed trait F
sealed trait K extends F
case object K1 extends K
sealed trait L extends F
case object L1 extends L
使用上面的层次,我怎么可以定义一个函数,在编译时,有A
类型要么是所有K
的或L
“的名单s,即超级类型必须是K
或L
,但不是F
?
例子:
f(List(K1, K1))
将编译由于该表的超类型是K
但
f(List(K1, L1))
不会因为名单的超类型是F
你可以使用'Either',尽管我从来不喜欢它的语法 – spiffman