Jul*_*gaz 6 scala scala-collections
在scaladoc中,BitSet被定义为扩展Set[Int].所以我认为BitSet在实例中使用as 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()
^
Run Code Online (Sandbox Code Playgroud)
然而演员工作:
scala> val b: Set[Int] = BitSet().asInstanceOf[Set[Int]]
b: Set[Int] = BitSet()
Run Code Online (Sandbox Code Playgroud)
那么为什么我需要明确地演绎BitSet一段Set[Int]时间Set[Int]才是超级型Set[Int]?
事实证明你Set的确是scala.collection.immutable.Set.所以你可以
val b0: Set[Int] = collection.immutable.BitSet()
val b1: collection.Set[Int] = collection.BitSet()
val b2: collection.immutable.Set[Int] = collection.immutable.BitSet()
val b3: collection.mutable.Set[Int] = collection.mutable.BitSet()
val b4: collection.Set[Int] = collection.immutable.BitSet()
val b5: collection.Set[Int] = collection.mutable.BitSet()
Run Code Online (Sandbox Code Playgroud)
但不是任何一个
val x1: collection.immutable.Set[Int] = collection.BitSet()
val x2: collection.immutable.Set[Int] = collection.mutable.BitSet()
val x3: collection.mutable.Set[Int] = collection.BitSet()
val x4: collection.mutable.Set[Int] = collection.immutable.BitSet()
Run Code Online (Sandbox Code Playgroud)
事实证明,默认导入为Set您提供x2.导入collection.immutable.BitSet或导入collection.Set(覆盖collection.immutable.Set).
| 归档时间: |
|
| 查看次数: |
277 次 |
| 最近记录: |