Привет, я очень новичок в Swift и пытаюсь использовать массив.
Я хочу создать массив в swift3, похожий на этот массив PHP, как показано ниже:
$countries = array(
"UK"=>array(
"gold_medal" => 59,
"prime_minister" => 'XYZ'
),
"Germany"=>array(
"gold_medal" => 17,
"prime_minister" => 'abc'
),
)
В массиве над названием страны находятся динамические переменные.
В 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
Вам нужно использовать словарь со словарями в качестве значений:
let countries = ["UK": ["gold_medal" : 59,
"prime_minister" : "XYS"],
"Germany": ["gold_medal" : 17,
"prime_minister" : "abc"]]