swift - 为什么在if语句之外使用return时在范围内找不到'newArray'
问题描述
import Foundation
func aVeryBigSum(ar: [Int]) -> Int {
if ar[0] < ar[1]{
var newArray = 1
} else if ar[0] > ar[1[]{
var newArray = 0
}
return newArray
}
print(aVeryBigSum(ar: [5,8]))
解决方案
您正在创建不同newArray
的 s in if
andelse
语句。并且您不能使用超出其范围的属性。所以只需在if
orelse
语句中返回一个值。或者newArray
像第二个例子一样在函数范围(不是 if-else 语句的范围)中创建。
第一的
func aVeryBigSum(ar: [Int]) -> Int {
if ar[0] < ar[1] {
return 1
} else {
return 0
}
}
第二
func aVeryBigSum(ar: [Int]) -> Int {
let newArray: Int
if ar[0] < ar[1] {
newArray = 1
} else {
newArray = 0
}
return newArray
}
推荐阅读
- python - 计算文本文件的标准偏差
- jsf - 如何让 JSF 自定义组件存储自定义类型作为其值?
- node.js - NodeJS:按顺序写入多个GET请求的文件响应
- javascript - 在nodejs中使用fast-csv根据列值将csv文件拆分为多个csv文件
- swift - struct 没有看到它的内容?
- json - 如何确保我的所有写事务函数按顺序解决?另外,为什么 else 函数没有执行?
- python - tkinter中if语句的变量问题
- javascript - JavaScript:根据订单数量计算 3 个包裹尺寸
- javascript - Fastify REST-API JWT-Auth 插件未作为 preHandler 触发
- xtensor - 如何用复杂的数据类型填充 xtensor 数组