我正在嘗試創建一個字典,其中包含一個陣列作為 Swift 中字典項之一的值。我希望能夠檢索陣列中的某個元素,但是當我嘗試這樣做時出現錯誤。
這是我的代碼:
var country = ["USA": [37.0902, 95.7129]]
let countrylatitude = country["USA"]
print(countrylatitude[0])
錯誤訊息是:可選型別“[Double]?”的值 必須展開以參考已包裝基型別“[Double]”的成員“下標”
這是什么意思?謝謝!
uj5u.com熱心網友回復:
Unwrapped 基本上意味著檢查并確保該值存在。countrylatitude 可能等于 nil,因為它不知道“USA”是否是字典的一部分。
有多種方法可以打開以確保它存在...
如果它等于 nil,強制解包將崩潰
countrylatitude![0]
if let 只會在它可以定義一個不等于 nil 的常量時運行
if let latitude = countrylatitude {
print(latitude[0])
}
除非它不等于 nil,否則guard let 不會在guard 陳述句之后運行任何代碼
guard let latitude = countrylatitude else { return }
print(latitude[0])
請記住,如果 latitude[0] 的索引沒有自動分配為可選的,那么如果您這樣做countrylatitude[0]基本上只是強制展開索引,如果該索引[0]不存在,它將崩潰。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/337912.html
