Как реализовать этот код Python в Swift? - PullRequest
0 голосов
/ 25 февраля 2019

Как реализовать хеш-таблицу внутри хеш-таблицы?Пример написан на Python, мне нужно написать его на Swift.

graph["start"] = {} 
graph["start"]["a"] = 6
graph["start"]["b"] = 2

1 Ответ

0 голосов
/ 25 февраля 2019

Сначала вы должны правильно определить тип graph, потому что в отличие от Python вы должны указать типы в Swift в объявлении:

var graph: [String: [String: Int]] // Dictionary(hash table) with keys of type String and values of type Dictionary<String, Int>

Затем вы должны инициализировать graph с некоторым начальным значением, потому что в Swift вы всегда явно инициализируете ненулевые переменные:

graph = [:] // empty dictionary, in Python it's {}

Объявление и инициализация могут быть в одной строке, поэтому вы можете просто сделать это:

var graph: [String: [String: Int]] = [:]

Тогда ваш фрагмент кода, с небольшими изменениями:

graph["start"] = [:]
graph["start"]?["a"] = 6 // ? can be replaced with ! here, because we know for sure "start" exists
graph["start"]?["b"] = 2 // but for simple tutorial purposes, I chose to use ? here

Но было бы лучше, если бы вы сразу определили значение "start":

graph["start"] = [
    "a": 6,
    "b": 2
]

Или даже сделать это для всего graph:

let graph: [String: [String: Int]] = [
    "start": [
        "a": 6,
        "b": 2
    ]
] 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...