gpt4 book ai didi

android - Kotlin 多层 IT 引用

转载 作者:行者123 更新时间:2023-11-29 14:43:59 25 4
gpt4 key购买 nike

如何在不创建新的 val/var 的情况下从第三层引用第二层“it”?我知道您可以执行 val mydata = it 然后执行 mydata.id.toString() 我只是想知道 Kotlin 中是否有一些东西可以让我从更高级别引用它?

data.arrayresults.forEach {
val result = it

result.myData.let {
val itemView - inflater.inflate(R.layout.somelayout)

itemView.setOnClickListener(View.OnClickListener {

// the it references the view but I want it to reference the result.myData
SomeActivity.startActivity(context, it.id.toString())
})
}
}

最佳答案

不,it 符号总是引用最内层的隐式单个 lambda 参数。

要解决此问题并提高代码的可读性,请使用 named lambda parameters每次嵌套带有参数的 lambda 时,如 Coding conventions 中所建议的那样:

data.arrayresults.forEach { result ->    
result.myData.let { myData ->
val itemView - inflater.inflate(R.layout.somelayout)

itemView.setOnClickListener(View.OnClickListener { view ->

// the it references the view but I want it to reference the result.myData
SomeActivity.startActivity(context, myData.id.toString())
})
}
}

关于android - Kotlin 多层 IT 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47873589/

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