Per quanto riguarda le mappe in Scala, se ms - (k, 1, m)
restituisce la mappa contenente tutte le mappature di ms eccetto per qualsiasi mappatura con le chiavi specificate, x, 1 e m.Mappa con solo determinati tasti
Quindi, quale istruzione restituirà una mappa di tutte le mappature di ms con solo le chiavi specificate, x, 1 e m. io sto cercando il sottoinsieme di ms dove solo k, 1 ed m sono chiavi.
questo funziona, ma è terribile:
scala> val originalMap = Map("age" -> "20", "name" -> "jack", "hobby" -> "jumping")
ms: scala.collection.immutable.Map[java.lang.String,java.lang.String] = Map(age -> 20, name -> jack, hobby -> jumping)
scala> val interestingKeys = List("name", "hobby")
interesting: List[java.lang.String] = List(name, hobby)
scala> val notInterestingMap = originalMap -- interestingKeys
notInterestingMap: scala.collection.immutable.Map[java.lang.String,java.lang.String] = Map(age -> 20)
scala> val interestingMap = originalMap -- notInterestingMap.keySet
interestingMap: scala.collection.immutable.Map[java.lang.String,java.lang.String] = Map(name -> jack, hobby -> jumping)
Per coloro che usano la persistenza dell'AKKA vale la pena menzionare che l'output di 'filterKeys' è _not_ serializzabile, l'ho affrontato e ci ho messo un po 'di tempo prima che me ne rendessi conto. Vedi https://issues.scala-lang.org/browse/SI-6654 –