二元运算符' +'不能应用于' Int'类型的操作数和' [Int]'

时间:2018-04-25 21:30:10

标签: swift swift4

我试图编写代码来更新我的数组并根据每日工资给出总薪水。我收到有关二元运算符的错误,所以我如何修复此行代码以便不会发生。

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])")
    }

1 个答案:

答案 0 :(得分:3)

您没有显示变量的声明,但似乎totalPayInt的数组,而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不需要{<1}}。

for day in 1...31