Hi! I found one behavior I don’t understand:
class User( nameParam: String ) {
var name : String = nameParam // why is nameParam saved directly into name.field here ?!?
set(value) {
println("Set is invoked")
field = value.toUpperCase() + "!!!"
}
}
fun main(args: Array<String>) {
val ivan = User("Ivan") // <<- setter is not invoked here!
println(ivan.name)
ivan.name = "Ivan" // <<- but now it is invoked
println(ivan.name)
}
Result of execution I expect:
Set is invoked IVAN!!! Set is invoked IVAN!!!
BUT I SEE THIS:
Ivan Set is invoked IVAN!!!
(tested on https://try.kotlinlang.org on all available Kotlin’s versions)