二进制操作员 =不能应用于两个INT操作数



我正在创建一个简单的结构。

struct Expenses {
    var totalExpenses:Int = 0
    func addExpense(expense: Int) {
        totalExpenses += expense
    }
}

它在线totalExpenses += expense的开头产生错误错误消息是

二进制操作员 =不能应用于两个int操作数。

为什么我会收到错误消息以及如何解决此问题?

您需要指定addExpensemutating函数,例如:

struct Expenses {
    var totalExpenses:Int = 0
    mutating func addExpense(expense: Int) {
        totalExpenses += expense
    }
}

来自文档:

结构和枚举是价值类型。默认情况下, 值类型的属性无法在其实例中修改 方法。

但是,如果您需要修改结构的属性或 特定方法中的枚举,您可以选择突变 该方法的行为。

有关更多信息,请参见 swift编程语言:方法

您无法更改struct,除非您使用突变关键字,否则默认情况下无法突变,请尝试以下操作:

mutating func addExpense(expense: Int) { ... }

我前几天遇到了这个问题,要么在您的功能上使用mutating关键字,要么将struct定义为CC_5。

最新更新