相关疑难解决方法(0)

无法赋值给属性:函数调用返回不可变值

请考虑以下示例.

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

8
推荐指数
3
解决办法
8475
查看次数

标签 统计

swift ×1