swift – 如何复制结构并同时修改其中一个属性?

swift – 如何复制结构并同时修改其中一个属性?,第1张

概述如果我想将我的视图控制器的状态表示为单个结构然后实现撤销机制,那么我如何更改结构上的一个属性,同时获取前一个状态的副本? struct A { let a: Int let b: Int init(a: Int = 2, b: Int = 3) { self.a = a self.b = b }}let state = A() 现在我想要一个 如果我想将我的视图控制器的状态表示为单个结构然后实现撤销机制,那么我如何更改结构上的一个属性,同时获取前一个状态的副本?
struct A {   let a: Int   let b: Int   init(a: Int = 2,b: Int = 3) {      self.a = a      self.b = b   }}let state = A()

现在我想要一个状态的副本,但是b = 4.如果不构造新对象并且必须为每个属性指定一个值,我怎么能这样做呢?

请注意,虽然对常量a和b使用占位符值,但是除了此占位符之外,您无法使用任何其他值构造A的实例.写初始化器.您可以编写自定义方法来更改struct中的任何值:
struct A {    let a: Int    let b: Int    init(a: Int = 2,b: Int = 3) {        self.a = a        self.b = b    }    func changeValues(a: Int? = nil,b: Int? = nil) -> A {        return A(a: a ?? self.a,b: b ?? self.b)    }}let state = A()let state2 = state.changeValues(b: 4)
总结

以上是内存溢出为你收集整理的swift – 如何复制结构并同时修改其中一个属性?全部内容,希望文章能够帮你解决swift – 如何复制结构并同时修改其中一个属性?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1029723.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-23
下一篇2022-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存