匿名函数
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