Swift 小心字典Value等於nil(容易出錯)
看書的時候看到
下面一段程式碼:
var dicWithNils:[String:Int?] = [
"one":1,
"two":2,
"none":nil
]
現在要求把two這個key的值變成nil
錯誤答案:
dicWithNils["two"] = nil
它將會把 “two” 這個鍵移除。
正確答案:
我們可以使用下面中的任意一個來改變這個鍵的值,你可以選擇一個你覺得清晰的方式,它們
都可以正常工作:
dictWithNils["two"] = Optional(nil)
dictWithNils["two"] = .some(nil)
dictWithNils["two"]? = nil
dictWithNils // ["none": nil, "one": Optional(1), "two": nil]
注意上面的第三個版本和其他兩個稍有不同。它之所以能夠工作,是因為 “two” 這個鍵已經存 在於字典中了,所以它使用了可選鏈的方式來在獲取成功後對值進行設定。現在來看看對於不 存在的鍵進行設定會怎麼樣:
dictWithNils["three"]? = nil
dictWithNils.index(forKey: "three") // nil
你可以看到,當把 “three” 設定 nil 時,並沒有值被更新或者插入。
相關文章
- attempt to index local ‘result‘ (a nil value)Index
- Swift - 11 - nil聚合運算Swift
- Swift,字典Swift
- iOS給字典中插入nil的幾種情景iOS
- Go 介面:nil介面為什麼不等於nil?Go
- iOS容易出錯的知識iOS
- Swift中 Nil Coalescing 運算子的使用技巧Swift
- 自定義錯誤型別時應該注意的 nil !=nil型別
- 及其容易出錯題總結 --關於繼承組合介面等等繼承
- Swift - 陣列、字典、集合Swift陣列
- Value Type vs Reference Type in SwiftSwift
- 使用CSS最容易出錯的兩大地方!CSS
- ASP中容易出錯的Null型別轉換Null型別
- 帶你理解 JS 容易出錯的坑和細節JS
- xcode 編譯opencv ios容易出現的錯誤XCode編譯OpenCViOS
- 關於value objectObject
- swift基本資料型別使用-字典使用Swift資料型別
- Swift學習筆記(二十一)——字典Swift筆記
- EasyUI的combobox預設值容易出錯地方介紹UI
- 關於日期與字串轉換時出錯的分隔符,小記一下容易忘記字串
- 使用Swift 字典模型互轉 超級簡單Swift模型
- Swift4.0 KVC 字典賦值模型改變Swift賦值模型
- 【iOS報錯】“this class is not key value coding-compliant for the key userPhoneNum”給字典設定鍵值對的時候報錯iOS
- Go 語言中,有時 nil 並不是一個 nilGo
- Objective-c nil, Nil, NULL和NSNull的區別ObjectNull
- 前端開發最容易出錯的基礎知識,面試常問!前端面試
- PHP容易出錯之二:PHP中的數字與字串比較PHP字串
- 容易犯錯的 PHP 函式PHP函式
- SQL Server 容易忽略的錯誤SQLServer
- Go“一個包含nil指標的介面不是nil介面”踩坑Go指標
- Objective-C 中 NULL、nil、Nil、NSNull 的定義及不同ObjectNull
- Swift錯誤處理Swift
- Java初學者容易犯哪些錯誤?Java
- javascript sort方法容易犯錯的地方JavaScript
- JavaScript容易犯錯的九個陷阱JavaScript
- Swift學習筆記(二十二)——字典的基本操作Swift筆記
- Python字典的遍歷,包括key遍歷/value遍歷/item遍歷/Python
- JavaScript <= 小於等於JavaScript