Generic Instance Method 総称体インスタンスメソッド

load(fromByteOffset:as:)

Returns a new instance of the given type, read from the buffer pointer’s raw memory at the specified byte offset. 与えられた型の新しいインスタンスを返します、バッファポインタの生のメモリから指定されたバイトオフセットで読み込みます。

Declaration 宣言

func load<T>(fromByteOffset offset: Int = 0, as type: T.Type) -> T

Parameters パラメータ

offset

The offset, in bytes, into the buffer pointer’s memory at which to begin reading data for the new instance. The buffer pointer plus offset must be properly aligned for accessing an instance of type T. The default is zero. バッファポインタのもつメモリに対する、バイトでの、オフセット、それで新しいインスタンスに対してデータ読み出しを始めることになります。offsetを加えたバッファポインタは、型Tのインスタンスにアクセスするために適切にアラインされる必要があります。初期状態はゼロです。

type

The type to use for the newly constructed instance. The memory must be initialized to a value of a type that is layout compatible with type. 新規に構築されるインスタンスのために使うことになる型。メモリは、typeとレイアウト互換である型の値に初期化されなければなりません。

Return Value 戻り値

A new instance of type T, copied from the buffer pointer’s memory. Tの新しいインスタンス、バッファポインタのもつメモリからコピーされます。

Discussion 解説

You can use this method to create new values from the buffer pointer’s underlying bytes. The following example creates two new Int32 instances from the memory referenced by the buffer pointer someBytes. The bytes for a are copied from the first four bytes of someBytes, and the bytes for b are copied from the next four bytes. あなたは、このメソッドを使って新しい値をバッファポインタのもつ基盤バイトから作成できます。以下の例は、2つの新しいInt32インスタンスをバッファポインタsomeBytesによって参照されるメモリから作成します。aに対するバイトは、someBytesの最初の4バイトからコピーされます、そしてbに対するバイトは次の4バイトからコピーされます。


let a = someBytes.load(as: Int32.self)
let b = someBytes.load(fromByteOffset: 4, as: Int32.self)

The memory to read for the new instance must not extend beyond the buffer pointer’s memory region—that is, offset + MemoryLayout<T>.size must be less than or equal to the buffer pointer’s count. 新しいインスタンスのために読み出すメモリは、バッファポインタのもつメモリ領域を越えて拡張されてはなりません — すなわち、offset + MemoryLayout<T>.sizeはバッファポインタのもつcountより少ないか等しくなければなりません。