(1)lambda表达式返回值的写法:
在lambda表达式内可以有返回值,我们可以有两种表示方法:
(a)lambda中的最后一个表达式作为返回值;
object Base9 {
fun test() {
var genderList = MutableList(3, {number ->
addAge(number)
})
for (element in genderList) {
Log.e("Base9", element.toString())
}
}
fun addAge(number : Int) : Int {
return number + 20
}
}
打印结果:
20
21
22
(b)明确使用return关键字,但在使用return关键字时得这样:
object Base9 {
fun test() {
var genderList = MutableList(3, {number ->
addAge(number)
return@MutableList 7 // 关键行
})
for (element in genderList) {
Log.e("Base9", element.toString())
}
}
fun addAge(number : Int) : Int {
return number + 20
}
}
打印结果:
7
7
7
(2)lambda参数不可以不可以赋值,因为是val类型的变量,这个有点类似于java里面的lambda一样:
(3)lambda表达式中的参数,会屏蔽外层同名定义的变量:
参考: