I have simple case where I call some list and try to append new value.
class User{
var list:Array<String> = []
func getList()->Array<String>{
return list
}
}
var user = User()
user.getList().append("aaa") // <-- ERROR
user.list.append("aaa") // OK
Immutable value of type Array<String> only has mutating member named 'append'
Why It doesn't work if user.getList() returns list.
I know there is no encapsulation like in Java but it seems strange.
[EDIT]
Regards to @MichaelDautermann answer:
var user = User() // {["c"]}
var temp:Array<String> = user.getList() // ["c"]
temp += ["aaa"] // ["c", "aaa"]
var z:Array<String> = user.getList() // ["c"]