如何在Swift 3中创建关联数组

Key*_*lia 0 php arrays swift3

嗨,我是Swift的新手,正在尝试使用数组。

我想在swift3中创建一个类似于此PHP数组的数组,如下所示:

$countries = array(
                   "UK"=>array(
                          "gold_medal" => 59,
                          "prime_minister" => 'XYZ'
                              ),
                    "Germany"=>array(
                          "gold_medal" => 17,
                          "prime_minister" => 'abc'
                              ),
                  )
Run Code Online (Sandbox Code Playgroud)

国家名称上方的数组中是动态变量。

Joh*_*ugh 6

这些在Swift中称为字典,您可以创建一个这样的字典:

let countries: [String: Any] = [
        "UK": ["gold_medal": 59, "prime_minister": "xyz"],
        "Germany": ["gold_medal": 17, "prime_minister": "abc"]
    ]
Run Code Online (Sandbox Code Playgroud)

编辑:Swift很擅长从分配的值中推断变量类型,这就是为什么我们可以编写

let count = 5
Run Code Online (Sandbox Code Playgroud)

编译器会找出count的类型Int。但是,在上面的词典示例中,Xcode(8.2.1)抛出警告异类集合文字只能推断为'[String:Any]'; 如果这是有意的则添加显式类型注释,这就是示例中包含类型的原因[String: Any]

有关Swift编程语言中的词典的更多信息


Art*_*kov 5

您需要使用带有字典作为值的字典:

let countries = ["UK": ["gold_medal" : 59,
                        "prime_minister" : "XYS"],
                 "Germany": ["gold_medal" : 17,
                        "prime_minister" : "abc"]]
Run Code Online (Sandbox Code Playgroud)