Kotlin内联属性的用例是什么?

由于属性的gettersetter通常不具有作为参数或具体types的function,使用inline属性的好处/用途是什么?

如果好处是减少与方法调用相关的成本,为什么不默认所有属性getter / setter内联?

Kotlin内联属性

例如。

 val foo: Foo inline get() = Foo() var bar: Bar get() = ... inline set(v) { ... } 

这里是内联属性的讨论 :

实体types参数示例:

 inline val  T.nextSiblingOfSameType: T? get() = PsiTreeUtil.getNextSiblingOfType(this, T::class.java) 

另一个用例是隐藏库的二进制接口的一些属性。 在Kotlin标准库中,与@InlineOnly注解一起,这可能使得将来可能会从类文件中排除这些属性的声明,从而减少方法数量,这对于Android的64K方法限制来说是最有利的。