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
- Go 介面:nil介面為什麼不等於nil?Go
- Swift - 陣列、字典、集合Swift陣列
- 自定義錯誤型別時應該注意的 nil !=nil型別
- 關於零值和nil
- 使用CSS最容易出錯的兩大地方!CSS
- swift基本資料型別使用-字典使用Swift資料型別
- 使用Swift 字典模型互轉 超級簡單Swift模型
- 取出字典中value最大值對應的key
- python: invalid value encountered in divide以及invalid value encountered in double_scalars報錯PythonIDE
- Go 語言中,有時 nil 並不是一個 nilGo
- 容易犯錯的 PHP 函式PHP函式
- python迴圈遍歷字典: title_content_list.append([key, value])print(tiPythonAPP
- Python字典的遍歷,包括key遍歷/value遍歷/item遍歷/Python
- 前端開發最容易出錯的基礎知識,面試常問!前端面試
- cnodejs-swift 釋出NodeJSSwift
- 錯誤解決:Attempting to use uninitialized value VariableZed
- [求助] 請問大佬,python 如何透過字典去修改 json 裡的 value 呢?PythonJSON
- Go“一個包含nil指標的介面不是nil介面”踩坑Go指標
- panic: assignment to entry in nil map
- Java初學者容易犯哪些錯誤?Java
- macOS小白容易犯的24個錯誤Mac
- Xcode Instruments除錯swift入門教程XCode除錯Swift
- [swift 進階]讀書筆記-C2P2字典Swift筆記
- JavaScript >= 大於等於JavaScript
- JavaScript <= 小於等於JavaScript
- Python字典的各種操作新增/修改/更新等應用Python
- go新手容易犯的三個致命錯誤Go
- 使用 Kubernetes 最容易犯的 10 個錯誤!
- 很多人容易犯的面試錯誤面試
- 製作成Excel表格,工作量大,容易輸錯。Excel
- 執行npm update等命令出錯後如何分析問題根源NPM
- angular(2+)報錯處理之 -- 關於function 、lambda、not supported等AngularFunction
- GO 空指標和nilGo指標
- Go 語言 nil 和介面Go
- Swift 首次除錯斷點慢的問題解法 | 優酷 Swift 實踐Swift除錯斷點
- LLDebugTool - 便捷的IOS除錯工具(支援Swift)iOS除錯Swift
- SQL Server 2014 匯出資料字典SQLServer