为什么在 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]))

ifelse语句中创建不同的newArray。并且不能在其作用域之外使用属性。因此,只需返回ifelse语句中的值。或者像第二个例子一样在函数作用域中(不是if-else语句的作用域)创建newArray

首先

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
}

范围,Swift

背景说明