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