此代码

extension Collection {
  mutating func f() {
    removeFirst()
  }
}


处理错误

cannot use mutating member on immutable value: 'self' is immutable


我认为mutating关键字应该使'self'易变。为什么?

最佳答案

RangeReplaceableCollection是收集的协议
如果可以添加或删除元素,请遵循:

extension RangeReplaceableCollection {
    mutating func f() {
        self.removeFirst()
    }
}

关于swift - swift4:在变异函数中“不能在不可变值上使用变异成员:'自身'是不可变的”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50177701/

10-14 21:08