Kotlin内联
作者:
小楠总 | 来源:发表于
2020-12-12 19:49 被阅读0次/**
* 不声明inline的时候,不会被平铺,不会被优化
*/
fun test1(block: () -> Unit) {
block()
}
/**
* 声明inline的时候,会被平铺,但是inline的Lambda可以断外部函数
*/
inline fun test2(block: () -> Unit) {
block()
}
/**
* 声明inline的时候,会被平铺
* 声明crossinline的时候,不允许inline的Lambda中断外部函数
*/
inline fun test3(crossinline block: () -> Unit) {
block()
}
fun main(args: Array<String>) {
test1 {
println(1)
}
println(2)
println("------------")
test2 {
println(1)
// 在return的会把外层main函数返回掉了
return
}
println(2)
println("------------")
test3 {
println(1)
// 声明crossinline的时候,不允许inline的Lambda中断外部函数
// return
}
println(2)
println("------------")
}
本文标题:Kotlin内联
本文链接:https://www.haomeiwen.com/subject/ycsygktx.html
网友评论