update getorelse scala dictionary collections playframework scala-collections

update - scala map getorelse



cómo eliminar el valor clave del mapa en Scala (4)

Eso depende del tipo de mapa de Scala.collection que esté utilizando. Scala viene con Mapas mutable e immutable . Comprueba estos enlaces:

http://www.scala-lang.org/api/2.10.2/index.html#scala.collection.immutable.Map

y

http://www.scala-lang.org/api/2.10.2/index.html#scala.collection.mutable.Map

En ambos tipos de mapas, - generalmente es la operación para eliminar una clave. Los detalles dependen del tipo de mapa. Un mapa mutable se puede modificar en su lugar utilizando -= . Algo como

if (m.contains("privacy") && m.getOrElse("privacy", 1) == 0) { m -= "play" }

Por otro lado, un mapa inmutable no se puede modificar en su lugar y tiene que devolver un nuevo mapa después de eliminar un elemento.

if (m.contains("privacy") && m.getOrElse("privacy", 1) == 0) { val newM = m - "play" }

Observe que está creando un nuevo mapa inmutable.

Map(data -> "sumi", rel -> 2, privacy -> 0, status -> 1,name->"govind singh")

cómo eliminar datos de este mapa, si la privacidad es 0.

Map(rel -> 2, privacy -> 0, status -> 1,name->"govind singh")


Si buscas ampliar esto y eliminar varios miembros, filterKeys es tu mejor filterKeys :

val a = Map( "data" -> "sumi", "rel" -> "2", "privacy" -> "0", "status" -> "1", "name" -> "govind singh" ) val b = a.filterKeys(_ != "data")


Si usa mapas inmutables, puede usar el método - para crear un nuevo mapa sin la clave especificada:

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 usa mapas mutables, puede simplemente eliminar una clave con -= o remove .


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)