为什么我需要“!”在使用 guard 语句时使用数组参数?
Why do I need "!" to use an array parameter while using a guard statement?
目前专注于结构和算法,我遇到了这个。
import Foundation
let numbers = [1, 3, 56, 66, 68, 80, 99, 105, 450]
func naiveContains(_ value: Int, in array: [Int]) -> Bool {
guard !array.isEmpty else { return false }
let midleIndex = array.count / 2
if value <= array[midleIndex] {
for index in 0...midleIndex {
if array[index] == value {
return true
}
}
} else {
for index in midleIndex..<array.count {
if array[index] == value {
return true
}
}
}
return false
}
我的问题的准确位置是守卫声明:
guard !array.isEmpty else { return false }
我不确定为什么 guard 语句需要,!在 !array.isEmpty
我只需要帮助理解为什么感叹号需要放在数组参数之前。
谢谢!
算法要求数组不为空。 !意思不是。所以 !array.isEmpty 表示不为空。
guard ...
的意思和if not ...
一样
所以 guard !array.isEmpty
表示 if not not array is empty
,这又等同于 if array.isEmpty {return false}
我看得出来很混乱!
目前专注于结构和算法,我遇到了这个。
import Foundation
let numbers = [1, 3, 56, 66, 68, 80, 99, 105, 450]
func naiveContains(_ value: Int, in array: [Int]) -> Bool {
guard !array.isEmpty else { return false }
let midleIndex = array.count / 2
if value <= array[midleIndex] {
for index in 0...midleIndex {
if array[index] == value {
return true
}
}
} else {
for index in midleIndex..<array.count {
if array[index] == value {
return true
}
}
}
return false
}
我的问题的准确位置是守卫声明:
guard !array.isEmpty else { return false }
我不确定为什么 guard 语句需要,!在 !array.isEmpty
我只需要帮助理解为什么感叹号需要放在数组参数之前。
谢谢!
算法要求数组不为空。 !意思不是。所以 !array.isEmpty 表示不为空。
guard ...
的意思和if not ...
一样
所以 guard !array.isEmpty
表示 if not not array is empty
,这又等同于 if array.isEmpty {return false}
我看得出来很混乱!