请考虑以下示例.
struct AStruct{
var i = 0
}
class AClass{
var i = 0
var a: A = A(i: 8)
func aStruct() -> AStruct{
return a
}
}
Run Code Online (Sandbox Code Playgroud)
如果我尝试改变类实例的变量,AClass它会成功编译.
var ca = AClass()
ca.a.i = 7
Run Code Online (Sandbox Code Playgroud)
但是如果我试图改变aStruct方法的返回值,编译就会尖叫
ca.aStruct().i = 8 //Compile error. Cannot assign to property: function call returns immutable value.
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下吗.
swift ×1