【发布时间】:2016-07-01 07:17:02
【问题描述】:
我在 Playground 文件中有以下代码:
extension Dictionary {
func test() {
for key in self.keys {
self[key]
}
}
}
var dict: [String: AnyObject?] = [
"test": nil
]
dict.test()
我以后将 for-each 循环中的行称为输出,因为它是相关的。在这个特定的例子中,输出是nil。
当我将 for-each 循环更改为如下所示时:
for key in self.keys {
print(self[key])
}
输出是"Optional(nil)\n"。
我真正想做的是检查 nil 的值,但是代码:
for key in self.keys {
self[key] == nil
}
输出false。
我尝试的另一件事是:
for key in self.keys {
self[key] as! AnyObject? == nil
}
产生错误:
Could not cast value of type 'Swift.Optional<Swift.AnyObject>' to 'Swift.AnyObject'
非常感谢任何帮助!
【问题讨论】:
-
这是一个非常好的问题,但请您回过头来说一下(1)您尝试做什么以及(2)是什么真的发生了吗?
-
这是一个示例,演示如何在字典中检查“双重选项”:stackoverflow.com/questions/27225232/…,以及如何区分“键的值不存在”和“键的值存在并且是无”。
标签: swift dictionary null extension-methods optional