swift 无法分配给值:'self'在本身内指派结构时是不可变的[closed]

avwztpqn  于 2022-12-10  发布在  Swift
关注(0)|答案(1)|浏览(132)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。

4天前关闭。
Improve this question
如果我在Swift中有这样的结构:

class MyStruct
{
    public var v1 : UInt64 = 0
    public var v2 : Bool = false
    public var v3 : UInt16 = 0
    
    func setDefaults()
    {
        var this = MyStruct()
        self = this
    }
}

我为什么不能做:

self = this

其结果是:
无法分配给值:'self'是不可变
一定有一种方法可以在一次赋值中赋值所有的值。我遗漏了什么?

z9smfwbn

z9smfwbn1#

已锁定2天。此时正在解析disputes about this answer’s content。当前不接受新的交往。

一定是协议。

protocol 🫠 { }
extension MyStruct: 🫠 { }
extension 🫠 where Self == MyStruct {
  mutating func setDefaults() {
    self = .init()
  }
}

也不要调用类MyStruct

相关问题