簡體   English   中英

在Swift中從嵌套數組讀取的正確語法?

[英]Correct syntax for reading from a nested array in Swift?

本質上,我試圖從Array-> Dictionary-> Array-> Int中獲取整數。 我沒有產生任何控制台錯誤,並且可以正常編譯,但始終返回0。我認為我的語法錯誤,但是我不確定重寫它的正確方法。

convenience init(fromDict dict: [String: Any]) {
    let dfa = dict["forms"] as? Array<Dictionary<String,Array<Any>>>
    self.init(
        heart: dfa?[0]["abilities"]?[0] as? Int ?? 0
    )
}

<array> <dict> <key>forms</key> <array> <dict> <key>abilities</key> </array> <integer>65</integer> </array>

您的語法對我來說還可以,盡管我建議使內部數組包含Int而不是Any如果它始終包含int)。 這樣,您就可以將最終的轉換類型丟失為Int類型。

如果您的任何一個條件轉換都失敗,那么您將得到nil,並且nil合並運算符會將您的nil轉換為0。我建議編寫調試代碼,將傳遞給該對象的對象記錄到您的init方法中,然后一次轉換一件事並逐步查看失敗的地方。

(正如Matt在評論中所說,如果第一個條件轉換失敗,則您的dfa變量將為nil。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM