鉴于以下代码可以在一个不错的列表中获取所有帐号的列表,我必须执行以下操作:
data class Customer(val accounts : List<Account>)
data class Account(val number : String)
fun getCustomers() = arrayListOf(
Customer(
arrayListOf(Account("1"),Account("2"))
),
Customer(
arrayListOf(Account("3"),Account("4"))
)
)
fun main(args: Array<String>) {
// long
println(getCustomers().map{ it.accounts }.flatten().map{ it.number })
// a little shorter (just discovered while typing the question)
println(getCustomers().flatMap{ it.accounts }.map{ it.number })
在Groovy中,我可以做同样的类结构:
println(getCustomers()*.accounts*.number.flatten())
// or even
println(getCustomers().accounts.number.flatten())
哪个好一点。有可能&#34;创造&#34;一个运算符(比如*。)做类似于Groovy的版本?
答案 0 :(得分:2)
不,它无法在Kotlin中创建新的运营商。