美文网首页
Swift 使用Struct 的mutating方法也会写时复制

Swift 使用Struct 的mutating方法也会写时复制

作者: docManer | 来源:发表于2021-03-24 12:09 被阅读0次
    struct MB {
        var f = 0
        
        mutating func update() {
            f += 1
        }
    }
    
    
    let m1 = MB()
    var m2 = m1
    m2.update()
    
    print(m1)
    print(m2)
    
    print(m1.f)
    print(m2.f)
    

    playground输出结果以下,可以看到执行写时复制的策略

    MB(f: 0)
    MB(f: 1)
    0
    1
    

    如果你的数组的元素是Struct,并且需要更改每一个Struct的变量,采用:

    let count = array.count
    for i in 0..<count {
     array[i].update()
    }
    

    这样修改每一个变量的内容

    以上是我的经验,我期待有更好的办法,以满足修改Array内部Struct的属性需求

    相关文章

      网友评论

          本文标题:Swift 使用Struct 的mutating方法也会写时复制

          本文链接:https://www.haomeiwen.com/subject/kyochltx.html