引言
Kotlin引入了内联函数,但这并不是Kotlin独有的,早在C++中就有了内联函数这一概念,那究竟什么时内联函数?为什么使用它?
什么是内联函数
Kotlin中被 inline 标记的函数为内联函数,内联函数被调用时,会把函数体内的所有代码移至调用处,而并不是通过常规方法调用的方式
在编译时期,把调用这个函数的地方用这个函数体内的代码进行替换,这是内联函数的核心本质,也是他与常规函数的区别
为什么使用内联函数
Kotlin中高阶函数和Lambda表达式的大量使用,使得出现大量的匿名内部类,多了很多类的开销,如果使用内联函数,将会大大减少,提高效率
内联函数使用场景
针对内联函数的使用,可以将函数分为两种
-
普通函数
此类函数不推荐使用内联函数,不会对效率有所提升 -
需要传入函数类型对象的高阶函数
此类函数建议使用内联函数
总结
本文并没有代码示例,只是一些理论,如果有疑问,可以对照代码和编译后的字节码,就可以清晰对比inline的作用,或者也可以留言讨论,谢谢!
网友评论