Kotlin Reference: Inline Functions
使用高阶函数会引入一定的运行时损耗:每一个函数都是一个对象,并且要获取闭包,即在函数内访问外部函数作用域的变量。(对函数对象和类的)内存分配和虚调用都会引入运行时开销。 但在很多情况下,使用内联 Lambda 表达式可以消除此种开销,下面给出的函数很好地展现了这一情况,即 lock() 函数可以很容易地在调用处内联,考虑下面的场景: [code lang=”kotlinR…
Read more
learn, build, evaluate
使用高阶函数会引入一定的运行时损耗:每一个函数都是一个对象,并且要获取闭包,即在函数内访问外部函数作用域的变量。(对函数对象和类的)内存分配和虚调用都会引入运行时开销。 但在很多情况下,使用内联 Lambda 表达式可以消除此种开销,下面给出的函数很好地展现了这一情况,即 lock() 函数可以很容易地在调用处内联,考虑下面的场景: [code lang=”kotlinR…
Read more
Higher-Order Functions 高阶函数指的是以函数作为参数或返回值的函数。lock() 函数是一个很好的例子,它接受一个对象和一个函数作为参数,获取对象的锁后,执行函数并释放锁: [code lang=”kotlin”]fun lock(lock: Lock, body: () -> T): T { lock.lock() try { return bo…
Read more
Function Declarations 在 Kotlin 中使用 fun 关键字定义函数: [code lang=”kotlin”]fun double(x: Int): Int { return 2*x }[/code] Function Usage 函数的调用和传统方法一样: [code lang=”kotlin”]val resul…
Read more