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