Kotlin多层它参考

如何从第三层引用第二层“it”而不创建新的val / var? 我知道你可以做val mydata =它,然后做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参数。

为了解决这个问题,并且为了提高代码的可读性,每次当你嵌套带参数的lambdas时,使用已命名的lambda参数,如编码约定所建议的那样:

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