XCode 16.2 日本語化計画
関連付けられている生の値との間で変換できる型。
RawRepresentable 型を使用すると、元の RawRepresentable 型の値を失うことなく、カスタム型と関連した RawValue 型を切り替えることができます。準拠型の生の値を使用すると、Objective-C およびレガシー (古い) API との操作が効率化され、Equatable、Comparable、Hashable などの他のプロトコルへの準拠が簡素化されます。
RawRepresentable プロトコルは、主に生の値型とオプションセットを持つ列挙型の 2 つのカテゴリの型で使用されます。
文字列、整数、または浮動小数点の生の型を持つ列挙型の場合、Swift コンパイラは自動的に RawRepresentable の準拠を追加します。あなたが独自のカスタム列挙型を定義するときは、列挙型の型継承リストの最初の項目として生の型を指定して、生の型を指定して下さい。リテラルを使用して、1 つ以上のケースの値を指定することもできます。
たとえば、ここで定義されている Counter 列挙型には Int の生の値型があり、最初のケースに生の値 1 が与えられます。
RawRepresentable プロトコルで宣言されている init?(rawValue:) イニシャライザを使用して、1 から 5 までの整数値から Counter インスタンスを作成できます。このイニシャライザは失敗する可能性があります。これは、Counter 型のすべてのケースには対応する Int 値がありますが、Counter のケースに対応 しない Int 値が多数あるためです。
Option sets (オプションセット) はすべて、OptionSet プロトコルを使用した継承によって RawRepresentable に準拠します。オプションセットを使用する場合でも、独自のオプションセットを作成する場合でも、オプションセットインスタンスの生の値を使用してインスタンスのビットフィールドを格納して下さい。したがって、生の値は、UInt8 や Int など、FixedWidthInteger プロトコルに準拠する型でなければなりません。たとえば、以下の Direction 型は、ゲーム内で移動できる 4 つの方向のオプションセットを定義します。
列挙型とは異なり、オプションセットには、すべての可能なケースの列挙リストがないため、生の値から変換するための失敗しない init(rawValue:) イニシャライザが用意されています。オプションセットの値は、関連した生の値と 1 対 1 で対応します。
Directions オプションセットの場合、インスタンスには、定義されている 4 つの方向のうち 0、1、またはそれ以上を含めることができます。この例では、現在許可されている 3 つの移動方向を含む定数を宣言しています。 allowedMoves インスタンスの生の値は、その 3 つのメンバーの生の値をビット単位で OR した結果です。
オプションセットは、関連した生の値に対するビット単位の演算を使用して、数学的なセット演算を実装します。たとえば、allowedMoves の contains() メソッドは、ビット単位の AND 演算を実行して、オプションセットに要素が含まれているかどうかを確認します。
init?(rawValue: Self.RawValue)
指定された生の値を持つ新しいインスタンスを作成します。
必須
生の型の対応する値。
必須
準拠する型のすべての値を表すために使用できる生の型。
必須
func == <T>(T, T) -> Bool
2 つの引数が等しいかどうかを示すブール値を返します。
func != <T>(T, T) -> Bool
2 つの引数が等しくないかどうかを示すブール値を返します。
func != <T>(T, T) -> Bool
2 つの引数が等しくないかどうかを示すブール値を返します。
これらのイニシャライザのオーバーロードは、Decodable 標準ライブラリ型である RawValue を持つ任意の準拠型で使用できます。
init(from: any Decoder) throws
型の RawValue が String の場合、与えられた復号器から復号して新しいインスタンスを作成します。
init(from: any Decoder) throws
型の RawValue が Bool の場合、与えられた復号器から復号して新しいインスタンスを作成します。
init(from: any Decoder) throws
型の RawValue が Double の場合、与えられた復号器から復号して新しいインスタンスを作成します。
init(from: any Decoder) throws
型の RawValue が Float の場合、与えられた復号器から復号して新しいインスタンスを作成します。
init(from: any Decoder) throws
型の RawValue が Int の場合、与えられた復号器から復号して新しいインスタンスを作成します。
init(from: any Decoder) throws
型の RawValue が UInt の場合、与えられた復号器から復号して新しいインスタンスを作成します。
init(from: any Decoder) throws
型の RawValue が Int8 の場合、与えられた復号器から復号して新しいインスタンスを作成します。
init(from: any Decoder) throws
型の RawValue が Int16 の場合、与えられた復号器から復号して新しいインスタンスを作成します。
init(from: any Decoder) throws
型の RawValue が Int32 の場合、与えられた復号器から復号して新しいインスタンスを作成します。
init(from: any Decoder) throws
型の RawValue が Int64 の場合、与えられた復号器から復号して新しいインスタンスを作成します。
init(from: any Decoder) throws
型の RawValue が UInt8 の場合、与えられた復号器から復号して新しいインスタンスを作成します。
init(from: any Decoder) throws
型の RawValue が UInt16 の場合、与えられた復号器から復号して新しいインスタンスを作成します。
init(from: any Decoder) throws
型の RawValue が UInt32 の場合、与えられた復号器から復号して新しいインスタンスを作成します。
init(from: any Decoder) throws
型の RawValue が UInt64 の場合、与えられた復号器から復号して新しいインスタンスを作成します。
これらのオーバーロードは、Encodable 標準ライブラリ型である RawValue を持つ任意の準拠型で使用できます。
func encode(to: any Encoder) throws
型の RawValue が String の場合、この値を与えられたエンコーダにコード化します。
func encode(to: any Encoder) throws
型の RawValue が Bool の場合、この値を与えられたエンコーダにコード化します。
func encode(to: any Encoder) throws
型の RawValue が Double の場合、この値を与えられたエンコーダにコード化します。
func encode(to: any Encoder) throws
型の RawValue が Float の場合、この値を与えられたエンコーダにコード化します。
func encode(to: any Encoder) throws
型の RawValue が Int の場合、この値を与えられたエンコーダにコード化します。
func encode(to: any Encoder) throws
型の RawValue が UInt の場合、この値を与えられたエンコーダにコード化します。
func encode(to: any Encoder) throws
型の RawValue が Int8 の場合、この値を与えられたエンコーダにコード化します。
func encode(to: any Encoder) throws
型の RawValue が Int16 の場合、この値を与えられたエンコーダにコード化します。
func encode(to: any Encoder) throws
型の RawValue が Int32 の場合、この値を与えられたエンコーダにコード化します。
func encode(to: any Encoder) throws
型の RawValue が Int64 の場合、この値を与えられたエンコーダにコード化します。
func encode(to: any Encoder) throws
型の RawValue が UInt8 の場合、この値を与えられたエンコーダにコード化します。
func encode(to: any Encoder) throws
型の RawValue が UInt16 の場合、この値を与えられたエンコーダにコード化します。
func encode(to: any Encoder) throws
型の RawValue が UInt32 の場合、この値を与えられたエンコーダにコード化します。
func encode(to: any Encoder) throws
型の RawValue が UInt64 の場合、この値を与えられたエンコーダにコード化します。
init(from: any Decoder) throws
型の RawValue が UInt128 の場合、与えられた復号器から復号して新しいインスタンスを作成します。
init(from: any Decoder) throws
型の RawValue が Int128 の場合、与えられた復号器から復号して新しいインスタンスを作成します。
func encode(to: any Encoder) throws
型の RawValue が Int128 の場合、この値を与えられたエンコーダにコード化します。
func encode(to: any Encoder) throws
型の RawValue が UInt128 の場合、この値を与えられたエンコーダにコード化します。
typealias AtomicOptionalRepresentation
Optional のアトミック操作で使用する場合に適した型である Optional<Self> にコード化および復号する記憶装置の表現型。
typealias AtomicRepresentation
Self がコード化および復号する記憶装置表現型は、アトミック操作で使用する場合に適した型です。
Optional のアトミック操作から返された AtomicOptionalRepresentation 記憶領域インスタンスを破棄することにより、論理アトミック型 Self? を回復します。
static func decodeAtomicRepresentation(consuming Self.RawValue.AtomicRepresentation) -> Self
アトミック操作から返された AtomicRepresentation 記憶領域インスタンスを破棄することにより、論理アトミック型の Self を回復します。
Self の値を破棄し、Optional のアトミック操作に使用する AtomicOptionalRepresentation 記憶領域型を準備します。
static func encodeAtomicRepresentation(consuming Self) -> Self.RawValue.AtomicRepresentation
Self の値を破棄し、アトミック操作に使用する AtomicRepresentation 記憶領域型を準備します。
TaskPriority
Unicode.CanonicalCombiningClass
そのすべての値のコレクションを提供する型。