У меня есть три класса
class C {
var id: String = _
}
class B {
var c: List[C] = _
}
class A {
var b: List[B] = _
}
Я хочу собрать все "id" экземпляра класса "C", которые находятся в экземпляре класса "A"
val c1 = new C
c1.id = "data1"
val c2 = new C
c2.id = "data2"
val b = new B
b.c = c1::c2::Nil
val a = new A
a.b = b::Nil
Ожидаетсявывод для этого примера кода - List [String], имеющий два элемента (то есть data1, data2). В императивном программировании я добился того же с помощью приведенного ниже фрагмента кода
def collectCId(a: A): List[String] = {
var collect = List[String]()
for(tmpb <- a.b){
for(tmpc <- tmpb.c){
collect = tmpc.id :: collect
}
}
collect
}
Как можно добиться того же функционально?
Версия Scala: 2.11