Kotlin的lambda表达式使用注意

(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表达式中的参数,会屏蔽外层同名定义的变量:

参考:

Kotlin语法(八)-方法和lambda表达式

[Kotlin] 关于lambda,你想知道的都在这里

猜你喜欢

转载自blog.csdn.net/zhuhai__yizhi/article/details/82590469
今日推荐