Swift hashValue не соответствует (и часто является отрицательным) - PullRequest
0 голосов
/ 08 марта 2019

Я пытаюсь использовать функцию hashValue для String в Swift.К сожалению, возвращаемое значение не соответствует и часто является отрицательным.Это ожидаемое поведение?

Как получить согласованное значение Int для строки в Swift?

1 Ответ

0 голосов
/ 08 марта 2019

Swift 4 предлагает новый способ получения хешей в зависимости от того, как вы хотите. Просто подпишитесь на Hashable протокол и внедрите hash(into hasher: inout Hasher) в своем классе:

class CustomClass:Equatable, Hashable {
    var id: Int32 = 0
    var name: String?

    init() {
    }



    static func == (lhs: CustomClass, rhs: CustomClass) -> Bool {
        return lhs.hashValue == rhs.hashValue
    }
    // hash value is calculated based on id, name parameters
    func hash(into hasher: inout Hasher) {
        hasher.combine(id)
        hasher.combine(name)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...