Как Swift hash Strings?

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

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


person James Shapiro    schedule 03.07.2017    source источник


Ответы (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/commit

person Ahmad F    schedule 03.07.2017