swift - 不能在不可变值 : 'XXX' is a 'let' constant 上使用可变成员

标签 swift

我是 swift 的新手。我尝试了几种方法,但是当我按照建议错误尝试时失败了,然后发生了另一个错误。我不知道这里到底发生了什么

  public struct ThermometerStruct {
          var temperature: Double = 0.0
      public mutating func registerTemperature(temperature: Double) {
        self.temperature = temperature
      }
    }

    let thermometerStruct = ThermometerStruct()
    thermometerStruct.registerTemperature(temperature : 56.0)

ERROR at line 14, col 5: cannot use mutating member on immutable value: 'thermometerStruct' is a 'let' constant thermometerStruct.registerTemperature(temperature : 56.0) ^~~~~~~~~~~~~~~~~

INFO at line 13, col 5: change 'let' to 'var' to make it mutable let thermometerStruct = ThermometerStruct() ^~~ var

最佳答案

错误消息已经告诉您需要更改的内容。将 let 替换为 var


struct ar 值类型。这意味着,如果修改了 struct 的任何属性,则需要将实例声明为 var

当您的struct 有一个方法,即修改struct 的属性之一时,此方法是可变的mutable 方法只能在您声明为 var 的实例上调用。

关于swift - 不能在不可变值 : 'XXX' is a 'let' constant 上使用可变成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40317915/

相关文章:

ios - 检索等于 UUID 的 Realm 对象

ios - UICollisionBehavior - View 穿过边界

ios - Swift:无法分配给表达式的结果

ios - 将单个 swift 文件添加到现有的 objective-c 项目

swift - 如何在 Swift 中从 URLSession 响应中获取 cookie

ios - 使用 Alamofire 使用参数数组上传多个文件

ios - 将 NSUserDefaults 与结构类型的数组一起使用

ios - ImageView 双边框

Swift:何时使用 'var' 和 'func'

ios - 如何在没有 google api 的情况下绘制路线(没有折线)?