Map(data -> "sumi", rel -> 2, privacy -> 0, status -> 1,name->"govind singh")
so entfernen Sie Daten aus dieser Karte, wenn die Privatsphäre 0 ist.
Map(rel -> 2, privacy -> 0, status -> 1,name->"govind singh")
Wenn Sie unveränderliche Karten verwenden, können Sie mit der Methode -
eine neue Karte ohne den angegebenen Schlüssel erstellen:
val mx = Map("data" -> "sumi", "rel" -> 2, "privacy" -> 0)
val m = mx("privacy") match {
case 0 => mx - "data"
case _ => mx
}
=> m: scala.collection.immutable.Map[String,Any] = Map(rel -> 2, privacy -> 0)
Wenn Sie veränderbare Karten verwenden, können Sie einen Schlüssel entweder mit -=
oder remove
entfernen.
Wenn Sie das skalieren und mehrere Mitglieder entfernen möchten, ist filterKeys
Ihre beste Wette:
val a = Map(
"data" -> "sumi",
"rel" -> "2",
"privacy" -> "0",
"status" -> "1",
"name" -> "govind singh"
)
val b = a.filterKeys(_ != "data")
Das hängt von der Art der Scala.collection Map ab, die Sie verwenden. Scala wird mit mutable
und immutable
Maps geliefert. Überprüft diese Links:
http://www.scala-lang.org/api/2.10.2/index.html#scala.collection.immutable.Map
und
http://www.scala-lang.org/api/2.10.2/index.html#scala.collection.mutable.Map
In beiden Kartentypen ist -
normalerweise der Vorgang zum Entfernen eines Schlüssels. Die Details hängen vom Kartentyp ab. Eine mutable
-Map kann an Ort und Stelle mithilfe von -=
geändert werden. So etwas wie
if (m.contains("privacy") && m.getOrElse("privacy", 1) == 0) {
m -= "play"
}
Auf der anderen Seite kann eine unveränderliche Karte nicht geändert werden und muss nach dem Entfernen eines Elements eine neue Karte zurückgeben.
if (m.contains("privacy") && m.getOrElse("privacy", 1) == 0) {
val newM = m - "play"
}
Beachten Sie, dass Sie eine neue unveränderliche Karte erstellen.
val m = Map("data" -> "sumi", "rel" -> 2, "privacy" -> 0,"status" -> 1,"name"->"govind singh")
scala> if(m("privacy")==0) m.filterKeys(_ != "data")
res63: Any = Map(name -> govind singh, rel -> 2, privacy -> 0, status -> 1)