Kotlin内联属性的用例是什么?
由于属性的getter或setter通常不具有作为参数或具体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方法限制来说是最有利的。