Hashable теперь хочет использовать протокол вместо hashValue, но я не могу понять это - PullRequest
2 голосов
/ 28 марта 2019

Я использую следующий код, который работал в Swift 4.2, но теперь устарел в Swift 5:

struct xxx: Hashable {
    var hashValue: Int {return uniqueIdentifier}

Когда я пытаюсь использовать новый hash(into hasher: inout Hasher), я не уверен, что делать,Мой uniqueIdentifier начинается с 0 и продолжает увеличиваться, поэтому он всегда уникален, не нужно ничего особенного.Но мне кажется, что теперь мне нужен следующий код:

func hash(into hasher: inout Hasher) {
        hasher.combine(uniqueIdentifier)
    }

Это правда?Я не понимаю, почему мне нужно объединить мой uniqueIdentifier с некоторым начальным числом.Есть ли способ, которым я могу преодолеть это, или я застрял, используя hasher.combine(uniqueIdentifier)?

...