gpt4 book ai didi

groovy - Kotlin相当于Groovy点(*。)

转载 作者:行者123 更新时间:2023-12-02 13:24:30 25 4
gpt4 key购买 nike

给定以下代码以在一个不错的列表中获取所有帐号的列表,我必须执行以下操作:

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 })

Playground Link

在给定相同类结构的Groovy中,我可以执行以下操作:
    println(getCustomers()*.accounts*.number.flatten())
// or even
println(getCustomers().accounts.number.flatten())

Playground Link

更好一点。是否可以“创建”运算符(例如*。)来执行类似于Groovy版本的操作?

最佳答案

不,不可能在Kotlin中创建新的运算符。

关于groovy - Kotlin相当于Groovy点(*。),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42357582/

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