Swift 如何散列字符串?

How does Swift hash Strings?

我正在查看字符串 (https://github.com/apple/swift/blob/master/stdlib/public/core/String.swift)

的 Swift 实现

String实现了Hashable协议,也就是说它必须提供一个hashValue。但是,none 在上面链接的 String 实现中提供。我在哪里可以找到这个?我假设 String 从某处继承它。

关于Swift String - Relationships提到的内容,你完全正确:

String implements the Hashable protocol...

您在问题中提供的文件的link中看不到符合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