swift - 对于需要返回的函数,为什么不在 for 循环中的 if-else 语句中返回就足够了?
问题描述
运行此函数时,会引发错误。似乎是因为它假设 for 循环不能保证运行。
我尝试在 for 循环之外包含 return,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])
预期结果:输出为真(当然,即使此代码有效,这也是错误的方法,因为它会导致误导性结果)
实际错误:预期返回“布尔”的函数中缺少返回
解决方案
由于数组可能为空,因此编译器需要确保所有路径都返回有效值
func isEveryoneAdult(ages: [Int]) -> Bool {
for age in ages {
if age < 18 {
return false
}
}
return true
}
推荐阅读
- node.js - 使用 axios 发布数据和文件
- c# - 如何从 .Net Core 3 制作 Windows 服务
- .net-assembly - 为什么 .ctor 会调用自己?
- sql - Vertica Analytic 函数用于计算窗口中的实例数
- ios - 使用 MapKit 时在创建时设置 MKPointAnnotation 的标题
- python - 我可以使用 python 来切换 Windows 10 通知吗?
- r - 从非 highmap-collection 地图制作等值线
- c++ - 如何将属性页添加到 CPrintDialogEx
- php - 插入只做第一行
- c# - C# 将 Active Directory 十六进制转换为 GUID