在 Kotlin 中使用 lambda 表達式的注意事項


在 Kotlin 中使用 lambda 表達式的注意事項

Kotlin 和 Android 開發

(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)
            [email protected] 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] 你想知道的關於 lambdas 的一切都在這裡