Scala 如何仅从类列表中获取精确属性

Scala 如何仅从类列表中获取精确属性,scala,Scala,如何仅从类列表中获取精确属性,例如 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[Str

如何仅从类列表中获取精确属性,例如

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)
你也能做到
对于{person Good,谢谢,您还可以将此
val names=persons.map{case p:person=>p.name}
添加到您的answer@yons88,
case p:Person=>p.name
只是一种更加详细的书写
\ucode>的方式。类型注释是不必要的,因为Scala已经知道它在
列表[Person]上运行
,而
p=>p.name
只是
\uu.name
的一个更详细的版本。