Map(data -> "sumi", rel -> 2, privacy -> 0, status -> 1,name->"govind singh")
как удалить данные с этой карты, если конфиденциальность равна 0.
Map(rel -> 2, privacy -> 0, status -> 1,name->"govind singh")
Map(data -> "sumi", rel -> 2, privacy -> 0, status -> 1,name->"govind singh")
как удалить данные с этой карты, если конфиденциальность равна 0.
Map(rel -> 2, privacy -> 0, status -> 1,name->"govind singh")
Если вы используете неизменяемые карты, вы можете использовать метод -
для создания новой карты без заданного ключа:
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)
Если вы используете измененные карты, вы можете просто удалить ключ с помощью -=
или remove
.
Если вы хотите увеличить масштаб и удалить несколько участников, то filterKeys
- ваш лучший выбор:
val a = Map(
"data" -> "sumi",
"rel" -> "2",
"privacy" -> "0",
"status" -> "1",
"name" -> "govind singh"
)
val b = a.filterKeys(_ != "data")
Это зависит от типа используемой вами карты Scala.collection. Scala поставляется с картами mutable
и immutable
. Проверяет эти ссылки:
http://www.scala-lang.org/api/2.10.2/index.html#scala.collection.immutable.Map
и
http://www.scala-lang.org/api/2.10.2/index.html#scala.collection.mutable.Map
В обоих типах карт -
обычно является операцией по удалению ключа. Детали зависят от типа карты. Карта mutable
может быть изменена с помощью -=
. Что-то вроде
if (m.contains("privacy") && m.getOrElse("privacy", 1) == 0) {
m -= "play"
}
С другой стороны, неизменяемое отображение не может быть изменено на месте и должно вернуть новую карту после удаления элемента.
if (m.contains("privacy") && m.getOrElse("privacy", 1) == 0) {
val newM = m - "play"
}
Обратите внимание, что вы создаете новую неизменяемую карту.