我正在创建一个简单的结构。
struct Expenses {
var totalExpenses:Int = 0
func addExpense(expense: Int) {
totalExpenses += expense
}
}
它在线totalExpenses += expense
的开头产生错误错误消息是
二进制操作员 =不能应用于两个int操作数。
为什么我会收到错误消息以及如何解决此问题?
您需要指定addExpense
是mutating
函数,例如:
struct Expenses {
var totalExpenses:Int = 0
mutating func addExpense(expense: Int) {
totalExpenses += expense
}
}
来自文档:
结构和枚举是价值类型。默认情况下, 值类型的属性无法在其实例中修改 方法。
但是,如果您需要修改结构的属性或 特定方法中的枚举,您可以选择突变 该方法的行为。
有关更多信息,请参见 swift编程语言:方法
您无法更改struct,除非您使用突变关键字,否则默认情况下无法突变,请尝试以下操作:
mutating func addExpense(expense: Int) { ... }
我前几天遇到了这个问题,要么在您的功能上使用mutating
关键字,要么将struct
定义为CC_5。