我有兩個類:問題映射值的列表到一個類斯卡拉
class Person(name: String)
class Persons(people: List[Persons]
我想創建一個接受一個字符串列表,同伴對象,讓每一個到一個人身上,並創建者目的。
object Persons {
def apply(people: List[String]) = new Persons(people.map(_ => new Person(_)))
}
但是,這是行不通的。事實證明,
people.map(_ => new Person(_))
是建立一個函數映射
List[(String) => Person]
我設法得到的結果使用的理解後,我,但我不清楚什麼回事使用地圖。
def apply(ppl: List[String]): Persons = {
new Persons(for {
p <- ppl
person = new Person(p)
} yield person)
}
誰能告訴我如何做到這一點使用的地圖,也許解釋發生了什麼,我不正確的嘗試?
'.map'採用參數1'A => B'的函數,而'_ => new Pe rson(_)'用2'_'定義一個arity 2的函數:或者'x => new Person(x)'或者'new Person(_)'('_'只用於'=> '忽略參數,不適用沒有命名)。 – cchantep