Как я могу создать ассоциативный массив в Swift 3

Привет, я очень новичок в Swift и пытаюсь использовать массив.

Я хочу создать массив в swift3, похожий на этот массив PHP, как показано ниже:

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

В массиве над названием страны находятся динамические переменные.

0

Решение

В Swift они называются словарями, и вы можете создать такой:

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

РЕДАКТИРОВАТЬ: Swift отлично выводит тип переменной из присваиваемого значения, поэтому мы можем написать

let count = 5

и компилятор выяснит, что count имеет тип Int, Однако в приведенном выше примере словаря Xcode (8.2.1) выдает предупреждение гетерогенный коллекционный литерал может быть выведен только как «[String: Any]»; добавить явную аннотацию типа, если это сделано намеренно, вот почему пример включает в себя тип [String: Any],

Подробнее о словарях в Язык программирования Swift

4

Другие решения

Вам нужно использовать словарь со словарями в качестве значений:

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

По вопросам рекламы [email protected]