Scala';s HashSet不';我好像没能实现设定?
我有一个Scala类:Scala';s HashSet不';我好像没能实现设定?,scala,hashset,Scala,Hashset,我有一个Scala类: class Example { def fooBar() : String = { // do some stuff var whistles = new HashSet[String]() fizzBuzz(whistles) // do some more stuff } def fizzBuzz(whistles : Set[String]) : Unit = {
class Example {
def fooBar() : String = {
// do some stuff
var whistles = new HashSet[String]()
fizzBuzz(whistles)
// do some more stuff
}
def fizzBuzz(whistles : Set[String]) : Unit = {
// do some stuff down here
}
}
当我调用fizzBuzz
方法(从fooBar
内部)时,会出现编译器错误,说明:
类型失配;找到:java.util.HashSet[String]必需:Set[String]
我错过了什么
HashSet
实现了Set
,上次我选中…您正在混合java.util.HashSet[A]
,这是HashSet
的java版本,带有scala.collection.immutable.Set[A]
。您想要的是scala.collection.immutable.HashSet[A]
:
val whistles = scala.collection.immutable.HashSet[String]()
fizzBuzz(whistles)
您将
java.util.HashSet[A]
与scala.collection.immutable.Set[A]
混合使用,后者是HashSet
的java版本。您想要的是scala.collection.immutable.HashSet[A]
:
val whistles = scala.collection.immutable.HashSet[String]()
fizzBuzz(whistles)
Scala拥有整洁的集合实现
val mutableHashset = scala.collection.mutable.HashSet[String]()
mutableHashset += "name"
mutableHashset.foreach { println }
不可变的
val immutableHashSet = scala.collection.immutable.HashSet[String]("Name", "Age", "Address")
immutableHashSet.foreach { println }
Scala拥有整洁的集合实现
val mutableHashset = scala.collection.mutable.HashSet[String]()
mutableHashset += "name"
mutableHashset.foreach { println }
不可变的
val immutableHashSet = scala.collection.immutable.HashSet[String]("Name", "Age", "Address")
immutableHashSet.foreach { println }
这与不可变集合和可变集合有什么关系?他的错误消息表明他正在使用
java.utl.HashSet
。这与不可变集合和可变集合有什么关系?他的错误消息表明他正在使用java.utl.HashSet
。