Ich habe eine Liste von Eigenschaften, die in verschiedene Kategorien setzen können. Der Werttyp ist unterschiedlich. Verschiedene Kategorien können jedoch denselben Werttyp haben.Gibt es eine elegante Art und Weise zu sammeln und konvertieren Sie den Typ zur gleichen Zeit in Scala
val data: List[(String, Any)] = List("first name" -> "rockie",
"last name" -> "yang",
"address" -> "rather not reveal",
"wanted age" -> 23)
val publicProps = Set("first name", "last name")
val privateProps = Set("address", "wanted age")
val filtered = data.filter(d => publicProps.contains(d._1))
// but the type of filtered is List[(String, Any)]
// I could do a map to convert the type to List[(String, String)]
filtered.map{case (name, value: String) => name -> value}
// If the number of publicProps is small
// I could do collect and convert at the same type
data.collect {
case ("first name", value: String) =>
("first name", value)
case ("last name", value: String) =>
("last name", value)
}
Gibt es eine elegante Möglichkeit, sammeln und konvertieren Sie den Typ auf den gleichen Typ?
Vielen Dank. Da ich mir sicher bin, dass es eine Saite ist, muss ich die Zeit zur gleichen Zeit umrechnen. –