gpt4 book ai didi

scala - 函数式编程 : Get list of data from nested loop

转载 作者:行者123 更新时间:2023-12-01 07:35:44 28 4
gpt4 key购买 nike

我有三门课

class C {
var id: String = _
}

class B {
var c: List[C] = _
}

class A {
var b: List[B] = _
}

我想收集“C”类实例的所有“id”,它们在“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

此示例代码的预期输出是具有两个元素(即 data1、data2)的 List[String]在命令式编程中,我用下面的代码片段实现了同样的效果

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

最佳答案

理解:

def collectCId(a: A): List[String] = 
for {
b <- a.b
c <- b.c
} yield c.id

关于scala - 函数式编程 : Get list of data from nested loop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53743718/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com