运行此功能时,将引发错误。似乎是因为它假定不能保证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])
预期结果:输出为真(当然,即使此代码有效,这也是错误的方法,因为它会导致产生误导性的结果)
实际错误:预期返回“布尔”的函数中缺少返回值
答案 0 :(得分:3)
由于数组可能为空,因此编译器需要确保所有路径都将返回有效值
func isEveryoneAdult(ages: [Int]) -> Bool {
for age in ages {
if age < 18 {
return false
}
}
return true
}