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



运行此函数时,会引发错误。这似乎是因为它假设for循环不能保证运行。

我尝试过在for循环之外包含return,Xcode接受了它。但是,我不明白为什么需要在for循环以外包含return。运行for循环不需要ages参数吗?因此,for循环肯定会运行吗?因此,函数总是会返回一些东西。我错过了什么?

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

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

实际错误:预期返回"Bool"的函数中缺少返回

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

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

最新更新