Android 关于lambda 的下划线

lambda 运行的小知识点

languageLv!!.setOnItemClickListener { _, _, i, _ ->
    this.position = i
    adapter.notifyDataSetChanged()
}

 

lambda 我经常在用,也用得很顺手,只不过都是用as提示写出来的

但是我今天第一次见到还可以这样用的

 

原型是这样子的

languageLv!!.setOnItemClickListener { parent, view, position, id ->
    this.position = position
    adapter.notifyDataSetChanged()
}

差别就在里面的参数,

上面不需要的参数都是 下划线( _ )

下面的都是默认参数

当时是在使用的时候成员变量名一样,为了避免冲突,然后改成i,同事看到,直接让我把其他变量改成下划线 (_ ),突然觉得好神器

 

看了一下解释:

因为解构声明语法为lambda表达式传递参数

如果不想声明其他变量,就可以用下划线( _ )替代变量

 

你可能感兴趣的:(Android)