var StringBuilder.lastChar: Char
get() = get(length - 1)
set(value: Char) {
this.setCharAt(length - 1, value)
}
val sb = StringBuilder("Kotlin?")
sb.lastChar = '!'
println(sb)
当我使用
kotlinc -script
运行此代码时,编译器将抛出:extensions.kts:3:14: error: unexpected type specification
set(value: Char) {
但是,此代码在编译时可以正常工作。
那么,这是否意味着扩展属性无法在kotlin脚本模式下工作?
最佳答案
Kotlin脚本只是将代码包装在main函数中。当在函数内部定义扩展属性时,扩展属性不起作用。我认为这是错误,您可以在此处提交:https://youtrack.jetbrains.com/issues/KT。