在Objective-C中,当我有一个数组
NSArray *array;
Run Code Online (Sandbox Code Playgroud)
我想检查它是否为空,我总是这样做:
if (array.count > 0) {
NSLog(@"There are objects!");
} else {
NSLog(@"There are no objects...");
}
Run Code Online (Sandbox Code Playgroud)
这样,就没有必要检查是否array == nil因为这种情况会导致代码陷入这种else情况,以及非nil空数组也会这样做.
但是,在Swift中,我偶然发现了我有一个可选数组的情况:
var array: [Int]?
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚使用哪种条件.我有一些选择,比如:
选项A:nil在相同条件下检查非案例和空案例:
if array != nil && array!.count > 0 {
println("There are objects")
} else {
println("No objects")
}
Run Code Online (Sandbox Code Playgroud)
选项B:使用let以下方法取消绑定数组:
if let unbindArray = array {
if (unbindArray.count > 0) {
println("There are objects!")
} else {
println("There are no objects...") …Run Code Online (Sandbox Code Playgroud)