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

initializeMemory(as:repeating:)

Initializes the memory referenced by this buffer with the given value, binds the memory to the value’s type, and returns a typed buffer of the initialized memory. このバッファによって参照されるメモリを与えられた値で初期化して、そのメモリを値の型に束縛し、そして初期化されたメモリの型付バッファを返します。

Declaration 宣言

@discardableResult func initializeMemory<T>(as type: T.Type, repeating repeatedValue: T) -> UnsafeMutableBufferPointer<T>

Parameters パラメータ

type

The type to bind this buffer’s memory to. このバッファのもつメモリをそれへと束縛する型。

repeatedValue

The instance to copy into memory. メモリにコピーすることになるインスタンス。

Return Value 戻り値

A typed buffer of the memory referenced by this raw buffer. The typed buffer contains self.count / MemoryLayout<T>.stride instances of T. この生のバッファによって参照されるメモリの型付バッファ。Tself.count / MemoryLayout<T>.strideインスタンスを含んでいる型付バッファ。

Discussion 解説

The memory referenced by this buffer must be uninitialized or initialized to a trivial type, and must be properly aligned for accessing T. このバッファによって参照されるメモリは、未初期化状態にされるまたは自明型に初期化されなければなりません、そしてTにアクセスするために適切にアラインされなければなりません。

After calling this method on a raw buffer with non-nil baseAddress b, the region starting at b and continuing up to b + self.count - self.count % MemoryLayout<T>.stride is bound to type T and initialized. If T is a nontrivial type, you must eventually deinitialize or move the values in this region to avoid leaks. If baseAddress is nil, this function does nothing and returns an empty buffer pointer. このメソッドを生のバッファ上で非nilのbaseAddress bを使って呼び出した後、bで始まってb + self.count - self.count % MemoryLayout<T>.strideまで続く領域は、型Tに束縛されて初期化されます。Tが非自明型ならば、あなたはゆくゆくはデイニシャライズするかまたはこの領域の値を移動してリークを防がなければなりません。baseAddressnilならば、この関数は何もしません、そして空のバッファポインタを返します。