Kotlin 内联函数

示例

可以使用inline前缀以内联方式声明函数,在这种情况下,它们的作用类似于C中的宏-而不是被调用,而是在编译时将其替换为函数的主体代码。在某些情况下(主要是将lambda用作函数参数),这可能会带来性能优势。

inline fun sayMyName(name: String) = "Your name is $name"

与C宏的不同之处在于,内联函数无法访问被调用的范围:

inline fun sayMyName() = "Your name is $name"

fun main() {
    val name = "Foo"
    sayMyName() # => Unresolved reference: name
}