noinline疑惑
来源:6-3 几个有用的高阶函数

正在蜕变的CV工程师
2021-03-26
老师,你好,本篇中的noinline听得有点迷惑,然后上网查了一下
网上说inline函数调用非inline的函数会报错
以下是我的代码
inline fun func(arg1: String, arg0: (Char) -> Unit) {
fund {
println("func:$it")
it
}
for (ele in arg1.toCharArray()) {
arg0.invoke(ele)
}
}
fun fund(arg0: (String) -> String) {
arg0("fund")
}
========
fun main(){
func("HellowWord") {
println("$it")
}
func("HellowWord") {
println("$it")
}
}
请老师帮我解答以下noinline和crossinline感谢![抱拳][抱拳]
写回答
1回答
-
bennyhuo
2021-03-26
noinline就是不内联。
crossinline主要用于如果lambda内联后不在调用处的函数调用栈上,这时候nonlocal return是被禁止的。30
相似问题