0
如何仅从类列表中获取确切属性,例如,如何仅从类列表中获取确切属性
case class Person(name: String, age: Int)
val a = Person("a", 1)
val b = Person("b", 1)
val persons = List(a, b)
val names = ???
assertEquals(List("a", "b"), names)
如何仅从类列表中获取确切属性,例如,如何仅从类列表中获取确切属性
case class Person(name: String, age: Int)
val a = Person("a", 1)
val b = Person("b", 1)
val persons = List(a, b)
val names = ???
assertEquals(List("a", "b"), names)
试试这个:
scala> val names = persons.map(_.name)
names: List[String] = List(a, b)
或者这样,如果你想在同一时间访问多个字段:
scala> val names = persons.map{ case Person(name, age) => name }
names: List[String] = List(a, b)
,你也可以做 for { person <- persons } yield person.name
这基本上是与地图相同的东西
很好,谢谢,你也可以加上这个s'val names = persons.map {case p:Person => p.name}'给你的回答 – yons88 2012-04-17 16:25:18
@ yons88,'case p:Person => p.name'只是一种更详细的书写'_.name '。类型注释是不必要的,因为Scala已经知道它正在'List [Person]上运行,而'p => p.name'只是'_.name'的一个更详细的版本。 – dhg 2012-04-17 16:27:14