Structure

AnyHashable

A type-erased hashable value. 型消去ハッシュ可能値。

Declaration 宣言

@frozen struct AnyHashable

Overview 概要

The AnyHashable type forwards equality comparisons and hashing operations to an underlying hashable value, hiding the type of the wrapped value. AnyHashable型は、さまざまな同等性比較およびハッシュ演算をある基盤をなすハッシュ可能値に転送して、ラップされた値の型を隠しています。

Where conversion using as or as? is possible between two types (such as Int and NSNumber), AnyHashable uses a canonical representation of the type-erased value so that instances wrapping the same value of either type compare as equal. For example, AnyHashable(42) compares as equal to AnyHashable(42 as NSNumber). asまたはas?を使う変換が、2つの型の間(たとえばIntNSNumber)で可能であるところでは、AnyHashableはその型消去値のある正準表現を使います、それでどちらかの型での同じ値をラップしているインスタンスそれらは等しいとみなされます。例えば、AnyHashable(42)は、AnyHashable(42 as NSNumber)と等しいとみなされます。

You can store mixed-type keys in dictionaries and other collections that require Hashable conformance by wrapping mixed-type keys in AnyHashable instances: あなたは混成型のキーを様々な辞書や他のコレクションに格納できます、それらは混成型キーをAnyHashableインスタンスの中へのラップするHashable準拠を必要とします:


let descriptions: [AnyHashable: Any] = [
    42: "an Int",
    43 as Int8: "an Int8",
    ["a", "b"] as Set: "a set of strings"
]
print(descriptions[42]!)                // prints "an Int"
print(descriptions[42 as Int8]!)        // prints "an Int"
print(descriptions[43 as Int8]!)        // prints "an Int8"
print(descriptions[44])                 // prints "nil"
print(descriptions[["a", "b"] as Set]!) // prints "a set of strings"

Note that AnyHashable does not guarantee that it preserves the hash encoding of wrapped values. Do not rely on AnyHashable generating such compatible hashes, as the hash encoding that it uses may change between any two releases of the standard library. 注意してください、AnyHashableは、それがそのラップされた値のハッシュ符号化を保全することを保証しません。AnyHashableがこのような比較可能ハッシュを生成することを当てにしないでください、それが使うハッシュ符号化が標準ライブラリの何らかの2つのリリースの間に変化するかもしれないので。

Topics 話題

Initializers イニシャライザ

Instance Properties 様々なインスタンスプロパティ

Instance Methods インスタンスメソッド

Operator Functions 演算子関数

See Also 参照

Type-Erasing Wrappers 型消去ラッパー