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)]多套了一层数组括号,把本来应该是单个日薪的整数,变成了只有一个元素的数组。
修复步骤很简单:
- 把
dailyPay的赋值改成直接存单个整数,去掉数组包裹:dailyPay[day] = Int(pay) - 同时要确保
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
相关产品推荐
相关产品推荐

