You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift报错:Binary operator '+'无法用于Int与[Int],求代码修复方案

修复“Binary operator '+' cannot be applied to operands of type 'Int' and '[Int]'”错误

咱先拆解下你遇到的问题:这个报错本质是类型不兼容——你的totalPay数组里存的是单个整数(Int类型),但dailyPay[day]被你存成了整数数组([Int]类型),Swift肯定不允许把整数和数组直接用+相加呀!

看你代码里的问题根源:这行dailyPay[day] = [Int(pay)]多套了一层数组括号,把本来应该是单个日薪的整数,变成了只有一个元素的数组。

修复步骤很简单:

  1. 把dailyPay的赋值改成直接存单个整数,去掉数组包裹:
    dailyPay[day] = Int(pay)
    
  2. 同时要确保dailyPay的类型是[Int](而不是[[Int]])——也就是一个存整数的数组,不是存数组的数组。这样它的元素类型就和totalPay的元素完全匹配,相加就不会报错了。

修复后的完整代码片段:

for day in stride(from: 1, to: 31, by: 1) {
    // 修复:直接存储单个Int值,不再用数组包裹
    dailyPay[day] = Int(pay)
    pay *= 2
    
    if day == 1 {
        totalPay[day] = Int(pay)
    } else {
        // 现在类型匹配,+运算符可以正常工作了
        totalPay[day] = totalPay[day-1] + dailyPay[day]
        print("\(heade) \(day) \(head) \(dailyPay[day]) \(total) \(totalPay[day])")
    }
}

额外小提醒:

如果dailyPay和totalPay是刚初始化的,记得要初始化一个足够容量的数组(比如Array(repeating: 0, count: 31)),避免出现索引越界的问题哦~

内容的提问来源于stack exchange,提问作者Vera Boukhonine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:31:52