对于需要返回的函数,为什么不在for循环内的if-else语句中返回?

运行此功能时,将引发错误。似乎是因为它假定不能保证for循环运行。

我试过在for循环之外包含返回值,Xcode接受它。但是,我不明白为什么在for循环之外需要返回。运行for循环是否不需要ages参数,因此肯定会运行for循环?因此,该函数将始终返回某些内容。我想念什么?

func isEveryoneAdult(ages: [Int]) -> Bool {
    for age in ages {
        if age < 18 {
            return false
        } else {
            return true
    }
    }
}

isEveryoneAdult(ages: [36,17])

预期结果:输出为真(当然,即使此代码有效,这也是错误的方法,因为它会导致产生误导性的结果)

实际错误:预期返回“布尔”的函数中缺少返回值

hnlvyou 回答:对于需要返回的函数,为什么不在for循环内的if-else语句中返回?

由于数组可能为空,因此编译器需要确保所有路径都将返回有效值

func isEveryoneAdult(ages: [Int]) -> Bool {
    for age in ages {
        if age < 18 {
            return false
        }
    }
   return true 
}
本文链接:https://www.f2er.com/3121195.html

大家都在问