我是 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/