为什么在一个地方而不是另一个地方工作呢?

时间:2019-06-27 14:30:33

标签: swift

我有两个几乎相同的代码实例,一个实例有效,而另一个实例无效。

使用Swift在Apple的App开发简介中,我已经到达要建立一个数组的位置,编写了一个对数组中的数据给出至少两个响应的函数,然后编写了{{ 1}}循环遍历它,并对数组中的每个值给出正确的响应。我不断收到此错误:

  

二进制运算符'> ='不能应用于两个'[Int]'操作数错误。

但是,如果我将for...in循环放入函数中,则一切正常。

for...in

使用包含循环的函数,将func goal(time:[Int]) { for code in time { if (code >= 90) { print ("Good Bunny, Have a carrot!") }else { print ("Bad Rabbit! Try Harder!") } } } goal(time: codeLearned) func bunny(bun: [Int]){ if (bun >= [90]) { print ("Good Bunny") } else { print ("Bad Rabbit") } } bunny(bun: codeLearned) 放在方括号if中可修复错误,但是没有循环就无法解决问题,因为练习是在没有循环的情况下进行这就是我要做的。

1 个答案:

答案 0 :(得分:2)

他们没有相同的逻辑。第一个函数检查数组中元素的值,第二个函数尝试将给定的数组与单元素数组进行比较。

func goal(time:[Int]) {
    for code in time {
        if (code >= 90) {
            print ("Good Bunny, Have a carrot!")
        } else {
            print ("Bad Rabbit! Try Harder!")
        }
    }
}

goal(time: codeLearned)


/// If your goal is the check count of array 
func bunny(bun: [Int]){
    if (bun.count >= 90) {
        print ("Good Bunny")
    } else {
        print ("Bad Rabbit")
    }
}
bunny(bun: codeLearned)

/// If your goal is the check element value in array
func bunny(bun: [Int]){
    for item in bun { 
        if (item >= 90) {
            print ("Good Bunny")
        } else {
            print ("Bad Rabbit")
        }       
    }
}
bunny(bun: codeLearned)