kotlin匿名函数、具名函数、内联函数

匿名函数

fun main() {
    //匿名函数
    login("张三", "1234") {
        "匿名函数:${it}"
    }
}

inline fun login(name: String, pwd: String, result: (String) -> String) {
    //模拟服务端
    //.......
    println(result("登录成功 姓名:${name} ,密码${pwd}"))
}

执行结果:匿名函数:登录成功 姓名:张三 ,密码1234

具名函数

fun main() {
    //具名函数
    login("王五", "2222", ::showResultImpl)
}

fun showResultImpl(result: String): String {
    return "具名函数:${result}"
}

inline fun login(name: String, pwd: String, result: (String) -> String) {
    //模拟服务端
    //.......
    println(result("登录成功 姓名:${name} ,密码${pwd}"))
}

执行结果:具名函数:登录成功 姓名:王五 ,密码2222

内联函数

inline fun login(name: String, pwd: String, result: (String) -> String) {
    //模拟服务端
    //.......
    println(result("登录成功 姓名:${name} ,密码${pwd}"))
}

包含result: (String) -> String这种 "函数类型对象" 的函数,才可以用内联关键词 inline 修饰。

不使用inline

不使用内联.png

使用inline

使用内联.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容