Сравнение двух словарей массивов на равенство - PullRequest
0 голосов
/ 02 мая 2018

У меня есть словарь следующего типа

[String : [String]]

В моем приложении во время выполнения я делаю запрос на обновление переменной, содержащей словарь вышеуказанного типа. Я также храню словарь того же типа в CoreData.

Мой вопрос: как лучше всего сравнить два этих словаря на равенство? Я думал, что для этого лучше всего подойдет функция хеширования, но не знал, как к ней подойти

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Я попробовал этот пример:

var dict1: [String: [String]]!
var dict2: [String: [String]]!

func compareDictionaries(){
    if dict1 == dict2{
        print("equals")
    }
}
0 голосов
/ 02 мая 2018

Я считаю, что эта функциональность является родной для swift 4:

https://developer.apple.com/documentation/swift/dictionary/2430767

Подобная функция будет работать, учитывая, что компилятор проверит для вас тип и гарантирует ключ:

func compare(left:[String:[String]], right: [String:[String]]) -> Bool {
     return left.keys == right.keys && left[left.keys.first!]! == right[right.keys.first!]! 
}

Но если по какой-то причине вы хотите пройтись по нему, хорошим способом будет декларативный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...