我有一个包含可选成员的类:
class A {
var i: Int? = nil
}
我有一个类型为 A
的对象数组。数组中的某些对象具有 i
的值,而其他一些对象则没有。
我想迭代数组中具有 i
值的对象,同时解开可选项。我找不到同时完成这两个操作的方法(甚至不知道是否可能),所以我被迫在循环内部编写一个 if let
结构。
例如:
// a1, a2 have a value for i
let arr: [A] = [a1, a2, a3]
for obj in arr where obj.i != nil {
// I want to avoid if let, or force unwrapping here
if let unwrapped = obj.i {
print(i)
}
// let unwrapped = obj.i! ...
}
在Swift中是否可能?
obj
和(已解包的)obj.i
两个变量吗?还是说只需要obj.i
就可以了? - Martin Robj
和i
这两个变量。 - Vince