本文主要是介绍Kotlin语法(十九)-内联函数(Inline Functions),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
参考原文: http://kotlinlang.org/docs/reference/inline-functions.html
使用高阶函数造成一些运行时问题:每一个函数都是一个对象,它会持有一个闭包;即在函数体中可以访问这些变量。内存分配(包括函数对象和类)及虚拟调用都会作为运行开销。
通过内联Lambda表达式方式,可以减少这种开销。如“lock()”函数,可以容易使用在使用位置内联相关函数,考虑下面使用方式:
fun <T> lock(lock: Lock, body: () -> T): T {lock.lock()try {return body()}finally {lock.unlock()}
}//
lock(l) { foo() }
这种使用方式,会创建一个函数对象作为参数并使用它,编译器会生成下面的代码:
l.lock()
try {foo()
}
finally {l.unlock()
}
内联函数,需要在函数前面使用“
inline<
这篇关于Kotlin语法(十九)-内联函数(Inline Functions)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!