我想要一个可以替换原始值的Kotlin属性。例如:
var String.setString
get() = "ignorethis"
set(value) = this = value
(我实际上是在UBytes上使用它来为上下半字节添加getter和setter)。
但是,在上面的示例中,我得到Variable expected.
可以使用扩展属性来修改this
吗?
答案 0 :(得分:0)
String
是不可变的,你只能在像这样的可变类型上这样做:
fun main() {
val x = mutableListOf("old")
x.setString = mutableListOf("New Pro Max Extra Large Plus")
println(x)
}
var <T> MutableList<T>.setString
get() = this
set(value) = value.forEachIndexed { idx, it -> this[idx] = it } ```