Kotlin中普通函数作为参数传递给内联函数时是否被内联?

【Kotlin中普通函数作为参数传递给内联函数时是否被内联?】 普通函数作为参数传给内联函数不会内联。
如果想把一个具名函数内联,需要用 inline 修饰,如:
fun a() { println("a")}inline fun b() { println("b")}fun main(args: Array\u0026lt;String\u0026gt;) { true.let { a() } true.let { b() }}上面代码中的第一个 let 会实实在在地去调用 a,而后一个 let 会直接生成 println("b") 的代码。

■网友
为什么要内联?
不要滥用内联
我觉得Kotlin的内联只有在一个情况下需要用
就是所谓的reified泛型

字节码级别的内联并没有你想象的优点
它只会让你的字节码变得更大更慢更难优化
内联后更长的字节码不光影响解释执行的效率
也会增加JIT负担和影响JIT优化
内联是优化的一种 应该由JIT去做

动态编译(JIT)的好处就是把优化时机尽可能延后
优化的时机越延后
得到的信息就越多
越能更好的优化
过早的内联(优化)只有坏处没有任何好处

静态编译是真的没有办法
不要用C++思维来想这个问题


    推荐阅读