内联函数是指用inline关键字修饰的函数。在类内定义的函数被默认成内联函数。内联函数从源代码层看,有函数的结构,而在编译后,却不具备函数的性质。
内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。编译时,类似宏替换,使用函数体替换调用处的函数名。一般在代码中用inline修饰,但是能否形成内联函数,需要看编译器对该函数定义的具体处理。—— 百度百科
使用高阶函数会带来一些运行时的效率损失:每一个函数都是一个对象,并且会捕获一个闭包。 即那些在函数体内会访问到的变量。 内存分配(对于函数对象和类)和虚拟调用会引入运行时间开销。
准备
在使用内联函数之前需要了解kotlin
中的泛型(与java
类似)
lambda
表达式 (Int) -> Unit
输入是Int类型返回结果是空
我一开始也是一头雾水,现在算是一知半解
let
- 源码
|
|
- 使用
|
|
repeat
- 源码
|
|
- 使用
|
|
with
- 源码
|
|
- 使用
|
|
run
- 源码
|
|
- 使用
可以看出和with类似,只是调用方式不一样