在Dean Wampler的書Programming Scala, 3rd Edition中,有一個示例:
type Elem[X] = X match>
case String => Char
case IterableOnce[t] => t
case Array[t] => t
case ? => X?
summon[Elem[List[Int]] =:=Int]
summon[Elem[Nil.type] =:= Nothing]
似乎沒有解釋,至少在周圍的環境中,為什么summon[Elem[Nil.type] =:= Nothing]而不是summon[Elem[Nil.type] =:= Nil.type]。為什么會出現這種情況?
uj5u.com熱心網友回復:
正如評論中所建議的,Nil擴展了List[Nothing],因此你的case IterableOnce[t] => t適用,并且Elem[Nil.type] =:= Nothing。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/309086.html
標籤:
上一篇:顯示位元組陣列影像到DiscordRichEmbed上
下一篇:NoClassDefFoundError:scala/collection/convert/AsJavaExtensions
