Kotlin扩展属性在Kotlin脚本中不起作用

时间:2016-05-30 06:31:42

标签: kotlin

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脚本模式下工作?

1 个答案:

答案 0 :(得分:2)

Kotlin脚本只是将代码包装在main函数中。在函数内部定义时,扩展属性不起作用。我认为这是错误,你可以在这里提交:https://youtrack.jetbrains.com/issues/KT