Map(data -> "sumi", rel -> 2, privacy -> 0, status -> 1,name->"govind singh")
comment supprimer des données de cette carte, si la confidentialité est 0.
Map(rel -> 2, privacy -> 0, status -> 1,name->"govind singh")
Si vous utilisez des cartes immuables, vous pouvez utiliser la méthode -
pour créer une nouvelle carte sans la clé donnée:
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)
Si vous utilisez des cartes mutables, vous pouvez simplement supprimer une clé avec -=
ou remove
.
Si vous souhaitez mettre à l'échelle et supprimer plusieurs membres, alors filterKeys
est votre meilleur choix
val a = Map(
"data" -> "sumi",
"rel" -> "2",
"privacy" -> "0",
"status" -> "1",
"name" -> "govind singh"
)
val b = a.filterKeys(_ != "data")
Cela dépend du type de carte Scala.collection que vous utilisez. Scala est livré avec les cartes mutable
et immutable
. Vérifie ces liens:
http://www.scala-lang.org/api/2.10.2/index.html#scala.collection.immutable.Map
et
http://www.scala-lang.org/api/2.10.2/index.html#scala.collection.mutable.Map
-
est généralement l'opération permettant de supprimer une clé. Les détails dépendent du type de carte. Une carte mutable
peut être modifiée sur place à l'aide de -=
. Quelque chose comme
if (m.contains("privacy") && m.getOrElse("privacy", 1) == 0) {
m -= "play"
}
D'autre part, une carte immuable ne peut pas être modifiée sur place et doit renvoyer une nouvelle carte après avoir retiré un élément.
if (m.contains("privacy") && m.getOrElse("privacy", 1) == 0) {
val newM = m - "play"
}
Notez que vous créez une nouvelle carte immuable.
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)