函数式参数补充

5年以前  |  阅读数:828 次  |  编程语言:Kotlin 

当 method 带有普通参数和函数参数时,普通参数可以和函数参数分离,普通参数写在 () 里,函数参数写在 {} 里

    // 声明含有普通参数和函数参数的方法
    fun apk(value: String, click: (name: String, age: Int) -> Int) {
        click("22",58)
    }

    // 注意早填写普通参数和函数参数时可以分离
    // 这样的写法我第一次见时很懵,不理解意思,后来自己试了试才发现可以这样写
    fun apkTest() {
        apk("value") { name: String, age: Int ->
            6688
        }
    }

典型例子:多级 callback

fun requestTokenAsync(cb: (Token) -> Unit) { ... }
fun createPostAsync(token: Token, item: Item, cb: (Post) -> Unit) { ... }
fun processPost(post: Post) { ... }

fun postItem(item: Item) {
    requestTokenAsync { token ->
        createPostAsync(token, item) { post ->
            processPost(post)
        }
    }
}

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8