在嵌套数组中读取值的正确语法?

时间:2017-01-08 09:11:04

标签: ios arrays swift dictionary

如果有人可以帮我解决语法问题。在

中读取Int的正确方法是什么

数组 - > Dict - >数组 - > Dict - >数组 - > [0]

我是Swift 3的新手并且无法提取变量。任何帮助都会被贬低。我尝试过以下方面的事情:

let sen = dict["senzu"] as? [[String:Any]]
  let sen1 = dfa?[0][0]["green"] as? Any

1 个答案:

答案 0 :(得分:0)

为了说得更清楚,我分了:

数组 - > Dict - >数组 - > Dict - >数组 - > [0]

到分隔级别,假设最后一个数组是05级而第一个数组是01级,如下所示:

// Array of Ints
var arrayLevel_05 = [1, 2, 3, 4]

// Dict of arrays of ints
var dictLevel_04: [String: [Int]] = ["myArray01": arrayLevel_05]

// Array of dicts of arrays of ints
var arrayLevel_03:[[String: [Int]]] = [dictLevel_04]

// Dict of arrays of dicts of arrays of ints
var dictLevel_02: [String: [[String: [Int]]]] = ["myArray02": arrayLevel_03]

// Array of dict of arrays of dicts of arrays of ints
var arrayLevel_01:[[String : [[String : [Int]]]]] = [dictLevel_02]

因此,要获取arrayLevel_05中的整数值:

let one = arrayLevel_01[0]["myArray02"]?[0]["myArray01"]?[0]
let tow = arrayLevel_01[0]["myArray02"]?[0]["myArray01"]?[1]
let three = arrayLevel_01[0]["myArray02"]?[0]["myArray01"]?[2]

请注意,它们是选项,因为您正在阅读字典中的值,如果您非常确定始终获取值,则可以替换{{1与?(强制解包)如下:

!

或遵循可选绑定方法:

let one = arrayLevel_01[0]["myArray02"]![0]["myArray01"]![0]
let tow = arrayLevel_01[0]["myArray02"]![0]["myArray01"]![1]
let three = arrayLevel_01[0]["myArray02"]![0]["myArray01"]![2]

有关什么是选项的更多信息,请查看Apple Documentation(可选部分)。

希望这会有所帮助。