Scala映射中的任意一个
我需要一个Scala映射中的任意一个,scala,scala-collections,Scala,Scala Collections,我需要一个Map[String,或者[Seq[String],String]],它应该是可变的(是的,我知道一些不好的做法,但我还在学习)。所以,当我试图这样定义它时: val map: Map[String, Either[Seq[String], String]] = mutable.HashMap("" -> Right("")) 我犯了一个错误 type mismatch; [error] found : scala.collection.mutable.HashMap[
Map[String,或者[Seq[String],String]]
,它应该是可变的(是的,我知道一些不好的做法,但我还在学习)。所以,当我试图这样定义它时:
val map: Map[String, Either[Seq[String], String]] = mutable.HashMap("" -> Right(""))
我犯了一个错误
type mismatch;
[error] found : scala.collection.mutable.HashMap[String,scala.util.Right[Nothing,String]]
[error] required: Map[String,Either[Seq[String],String]]
[error] val map:Map[String,Either[Seq[String],String]] = mutable.HashMap("" -> Right(""))
如何正确定义它?一般来说,在创建可变集合(或
var
s或任何可变集合)时,最好在创建时显式指定类型。这是因为可变集合在包含的类型中是不变的,而推断不变类型是不可靠的
所以你可以写
val map = mutable.HashMap[String,Either[Seq[String],String]]("" -> Right(""))
这应该是正确的类型。哦,是的,我刚刚忘记了可变集合的不变量)谢谢)HashMap(“->Right[Seq[String],String](”)-我认为应该可以工作。