我很困惑:斯威夫特 - 字典值設置爲nil,混亂
讓我們創建一個字典:
var d = ["foo": nil] as [String: Any?]
現在,如果我想刪除鍵"foo"
,我可以做
d["foo"] = nil // d is now [:]
與其他選擇可能是:
let x: String? = nil
d["foo"] = x // d is now [:]
但這種行爲會有所不同:
let x: Any? = nil
d["foo"] = x // d is still ["foo": nil]
與上述相似(我認爲是一樣的):
d["foo"] = d["foo"] // d is still ["foo": nil]
這是怎麼回事?和順便說一句,爲什麼迅速讓我們刪除鍵與它們設置爲nil
,而不是與
d.removeValue(forKey: "foo")
堅持?
什麼是你斯威夫特版本開始討論? – iMuzahid
我正在運行swift 3 – Guig
在Objective-C中,字典中的所有鍵和值都不能爲「nil」。 Swift字典應該類似地工作。只是不要使用可選值;-) – vadian