Swift: Hashable和AnyHashable

  • 首先Hashable是protocol;
    public protocol Hashable : Equatable {
    public var hashValue: Int { get }
    }
    AnyHashable是struct,遵循Hashable protocol;
  • AnyHashable主要是用在Dictionary和Set需要的键的类型中,因为键要求是遵循Hashable protocol的类型,比如我们我们常常看到的[AnyHashable : Any] Dictionary;
  • 具体到那些基本类型可以充当AnyHashable类型呢?
    其实String、Double、Int等都可以充当AnyHashable类型使用,原因同样是因为这些类型都遵循Hashable protocol。

你可能感兴趣的:(Swift: Hashable和AnyHashable)