2016-05-30 15 views
3
var StringBuilder.lastChar: Char 
    get() = get(length - 1) 
    set(value: Char) { 
     this.setCharAt(length - 1, value) 
    } 


val sb = StringBuilder("Kotlin?") 
sb.lastChar = '!' 
println(sb) 

Wenn ich diesen Code mit kotlinc -script laufen, der Compiler wirft:Kotlin Erweiterungseigenschaften funktionieren nicht in Kotlin Skript

extensions.kts:3:14: error: unexpected type specification 
    set(value: Char) { 

jedoch dieser Code funktioniert ohne Probleme beim Kompilieren. Also, bedeutet es, dass Erweiterungseigenschaften im Kotlin-Skriptmodus nicht funktionieren können?

Antwort

2

Kotlin-Skripte nur Code in Hauptfunktion umhüllen. Und Erweiterungseigenschaften funktionieren nicht, wenn sie in Funktionen definiert sind. Ich denke, das ist Bug, und Sie können es hier einreichen: https://youtrack.jetbrains.com/issues/KT.