我正在尝试编写代码来更新我的数组并根据每日工资给出总工资。我收到有关二元运算符的错误,那么如何修复此行代码,以免发生这种情况。
for day in stride(from: 1, to: 31, by: 1)
{
dailyPay[day] = [Int(pay)]
pay*=2
if(day==1)
{
totalPay[day] = Int(pay)
}
else
{
totalPay[day] = totalPay[day-1]+dailyPay[day]//The problem is Here
print("\(heade) \(day) \(head) \(dailyPay[day]) \(total) \(totalPay[day])")
}
最佳答案
您没有显示变量的声明,但看起来 totalPay
是一个 Int
数组,而 dailyPay
是Int
数组的二维数组。因此,totalPay[day-1]
将是一个 Int
,而 dailyPay[day]
将是一个 [Int]
或 Int
数组。因此,您得到的错误正是它所说的意思;您不能使用 +
添加 Int
和数组。
从您的代码看来,dailyPay
可能是一个普通的旧整数数组,例如 totalPay
。所以你可以通过更改声明来解决这个问题,无论它在哪里,来自:
var dailyPay: [[Int]]
到:
var dailyPay: [Int]
然后,将分配更改为:
dailyPay[day] = Int(pay)
一切都应该有效。
旁注:您的 for
循环不必要地复杂。不需要 stride
,只要您可以:
for day in 1...31
关于swift - 二元运算符 '+' 不能应用于类型 'Int' 和 '[Int]' 的操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50031638/