kotlin 之内联函数
在lambda表达式内联函数,需要在定义函数使用inline关键字
未使用inline关键字
fun main(arg: Array<String>) { print(haha({name ->"$name heihei" })) } fun haha(area: (name:String)->String):String{ return area("haha") }
使用inline 关键字
fun main(arg: Array<String>) { print(haha({name ->"$name heihei" })) } inline fun haha(area: (name:String)->String):String{ return area("haha") }
输出一样
但注意的是,要内联的函数带的lambda不宜过大,否则会造成生产class文件过大
内联部分lambda表达式
fun main(arg: Array<String>) { print(haha({name ->"$name 1"},{name ->"$name 2"})) } inline fun haha(area: (name:String)->String, noinline area2: (name:String)->String):String{ return area("haha")+ area2("hehe") }
关键字noinline不会内联调用函数
最后,关注【码上加油站】微信公众号后,有疑惑有问题想加油的小伙伴可以码上加入社群,让我们一起码上加油吧!!!
posted on 2018-12-19 17:00 LoaderMan 阅读(1066) 评论(0) 编辑 收藏 举报