class MainAdapter : RecyclerView.Adapter<MainAdapter.ViewHolder>() {
var list: List<Int> = arrayListOf()
var tracker: SelectionTracker<Long>? = null
init {
setHasStableIds(true)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val number = list[position]
tracker?.let {
holder.bind(number, it.isSelected(position.toLong()))
}
}
我想理解这个例子。 tracker?.let
转换为什么?还有Java中的init
等价物?
答案 0 :(得分:1)
MainAdapter等效项是这样的:
row1 | row2
_______________
400 |500
答案 1 :(得分:1)
如果您对Java很熟悉,我将建议另一种读取kotlin代码的方法。您可以在android studio中使用以下选项。
在此之后,只需单击decompile and Voila !,您将获得Java代码。
所以现在您可以阅读任何kotlin代码。
答案 2 :(得分:0)
class M {
var age: Int = 0
}
fun main(){
val m = M()
m.let {
it.age = 11
}
println(m.age)
}
在输出“ 11”上方,因此“ let”不会复制接收方,“ it”只是指向接收方,具有副作用