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