6
在scaladoc中,BitSet
定義爲延伸Set[Int]
。所以我想用BitSet
如在Set[Int]
實例會的工作,但我得到一個類型不匹配:爲什麼BitSet要求將顯式強制轉換視爲Set [Int]的實例?
Welcome to Scala version 2.9.1.final (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_29).
scala> import collection.BitSet
import collection.BitSet
scala> val b: Set[Int] = BitSet()
<console>:8: error: type mismatch;
found : scala.collection.BitSet
required: Set[Int]
val b: Set[Int] = BitSet()
^
然而鑄造的工作原理:
scala> val b: Set[Int] = BitSet().asInstanceOf[Set[Int]]
b: Set[Int] = BitSet()
那麼,爲什麼我需要明確地投下BitSet
到Set[Int]
而Set[Int]
是Set[Int]
的超級類型?
@jullybobble - 你還是很困惑。 'collection.Set'和'scala.collection.Set'是_完全一樣的東西_。你的意思是來自'Predef'的'Set'。 – 2012-03-13 21:36:18
哎呀,對!現在我懂了!感謝您的更正! – 2012-03-13 22:51:32
注:我刪除了我對@Rex回答的第一條評論,因爲這是錯誤的和誤導性的。 – 2012-03-14 07:29:22