Kotlin 语言学习(4) - 数据类、类委托 及 object 关键字
Kotlin 语言学习(5) - lambda 表达式和成员引用
一、本文概要
二、内联函数
当我们使用lambda
表达式时,它会被正常地编译成匿名类。这表示每调用一次lambda
表达式,一个额外的类就会被创建,并且如果lambda
捕捉了某个变量,那么每次调用的时候都会创建一个新的对象,这会带来运行时的额外开销,导致使用lambda
比使用一个直接执行相同代码的函数效率更低。
如果使用inline
修饰符标记一个函数,在函数被调用的时候编译器并不会生成函数调用的代码,而是 使用函数实现的真实代码替换每一次的函数调用。
2.1 内联函数如何运作
当一个函数被声明为inline
时,它的函数体是内联的,也就是说,函数体会被直接替换到函数被调用地方,下面我们来看一个简单的例子,下面是我们定义的一个内联的函数: