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

问题描述:

嗨,我对Swift非常陌生,正在尝试使用数组。我如何在Swift 3中创建关联数组0

我想创建swift3类似数组下面这个PHP数组:

$countries = array(
        "UK"=>array(
          "gold_medal" => 59, 
          "prime_minister" => 'XYZ' 
          ), 
        "Germany"=>array(
          "gold_medal" => 17, 
          "prime_minister" => 'abc' 
          ), 
       ) 

在国名以上的数组是动态的变量。

+0

你的意思是一个'词典'!? – luk2302

+0

我不知道luk,如果这是最好的解决方案,那么为什么不呢。但我不知道如何使用它。 –

+2

你应该开始阅读关于swift https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/CollectionTypes.html – luk2302

这些被称为斯威夫特词典,你可以创建一个这样的:

let countries: [String: Any] = [ 
     "UK": ["gold_medal": 59, "prime_minister": "xyz"], 
     "Germany": ["gold_medal": 17, "prime_minister": "abc"] 
    ] 

编辑:斯威夫特是在推断大来自正在分配的值的可变类型,这就是为什么我们可以写

let count = 5 

,编译器会发现count的类型为Int。但是,对于上面的字典示例,Xcode(8.2.1)会抛出警告异构集合文字只能推断为'[String:Any]';如果这是故意的,那么添加明确的类型注释,这就是为什么示例包括类型[String: Any]

更多关于词典The Swift Programming Language

+0

感谢@Rob,更新了片段! –

您需要使用字典,词典作为值:

let countries = ["UK": ["gold_medal" : 59, 
         "prime_minister" : "XYS"], 
       "Germany": ["gold_medal" : 17, 
         "prime_minister" : "abc"]]