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
的一个更详细的版本。