Как работает Swift хэш-строки?

Я просматриваю реализацию String в Swift ( https://github.com/apple/swift/blob/master/stdlib/public/core/String.swift)

String реализует протокол Hashable, что означает, что он должен предоставлять hashValue. Тем не менее, ничего не предусмотрено в реализации String, связанной с выше. Где я могу найти это? Я предполагаю, что String наследует его откуда-то.

1 ответ

Ссылаясь на то, что упомянуто в Swift String - Relationships, вы абсолютно правы относительно:

String реализует протокол Hashable...

Причиной, по которой вы не видите, где находится реализация соответствия Hashable Протокол в ссылке на файл, который вы указали в вопросе:

'String : Hashable' соответствие перенесено в отдельный файл. Вы можете найти его здесь: https://github.com/apple/swift/blob/master/stdlib/public/core/StringHashable.swift; Обратите внимание, что файл является StringHashable.swift, но не String.swift.

Вы также можете найти фиксацию этого изменения здесь: https://github.com/apple/swift/pull/4612/commits

Другие вопросы по тегам