与扩展函数类似,Kotlin还支持扩展属性:
val <T> List<T>.lastIndex: Int get() = size - 1
需要注意的是,扩展并不会添加成员变量到类中,所以并没有一种很有效的方式使扩展属性拥有一个backing field。这就是为什么初始化函数不能有扩展属性。它们的行为必须是显示的提供getter/setter。
val Foo.bar = 1 // 这是错误的语法
必须按照第一个例子的方式进行定义。