优雅的Kotlin对象

优雅的Kotlin对象,kotlin,Kotlin,我想根据输入对象输出一个对象。我想通过填充输入对象中包含的空数组来丰富它。新数组基于对象中包含的现有数组。除了包含新数组外,输出对象与输入对象深度相等。我开发了以下代码块: fun充实(a:T1){ val b=可变列表()的值 a、 forEach{it1-> val bb=mutableListOf() it1.aa.forEach{it2-> val bbb=mutableListOf() it2.aaa.forEach{it3-> bbb.添加(T3(“基于it3的某个值”)) } bb

我想根据输入对象输出一个对象。我想通过填充输入对象中包含的空数组来丰富它。新数组基于对象中包含的现有数组。除了包含新数组外,输出对象与输入对象深度相等。我开发了以下代码块:

fun充实(a:T1){
val b=可变列表()的值
a、 forEach{it1->
val bb=mutableListOf()
it1.aa.forEach{it2->
val bbb=mutableListOf()
it2.aaa.forEach{it3->
bbb.添加(T3(“基于it3的某个值”))
}
bb.加入(T2(bbb))
}
b、 加(T1(aa,bb))
}
返回b
}

有更优雅的解决方案吗?

您可以使用
map
方法。所以最终的解决方案可能是这样的

fun enrich(a: MutableList<T1>): MutableList<T1> {
    return a.map { it1 ->
        T1(it1.aa.map { it2 ->
            T2(it2.aaa.map { it3 ->
                T3("somevalue based upon $it3")
            })
        })
    }.toMutableList()
}
a:MutableList:MutableList{
返回a.map{it1->
T1(it1.aa.map{it2->
T2(it2.aaa.map{it3->
T3(“基于$it3的价值”)
})
})
}.toMutableList()
}

您可以使用
map
方法。所以最终的解决方案可能是这样的

fun enrich(a: MutableList<T1>): MutableList<T1> {
    return a.map { it1 ->
        T1(it1.aa.map { it2 ->
            T2(it2.aaa.map { it3 ->
                T3("somevalue based upon $it3")
            })
        })
    }.toMutableList()
}
a:MutableList:MutableList{
返回a.map{it1->
T1(it1.aa.map{it2->
T2(it2.aaa.map{it3->
T3(“基于$it3的价值”)
})
})
}.toMutableList()
}

另外,我想我应该把它变成一个扩展函数(
有趣的MutableList.experized():MutableList
)。(过去分词“riched”意味着它返回一个新的对象,而不改变原来的对象,这就是简单的动词“richem”所暗示的。比较和。)此外,我想我应该把它变成一个扩展函数(
fun MutableList.riched():MutableList
)。(过去分词“riched”意味着它返回一个新的宾语,而不改变原来的宾语,这就是动词“richem”的意思。比较和。)