Initializer

init(unsafeUninitializedCapacity:initializingWith:)

Creates an array with the specified capacity, then calls the given closure with a buffer covering the array’s uninitialized memory. 新しい配列をこの指定された収納能力で作成します、それから与えられたクロージャを、配列のもつ初期化されないメモリを含むバッファで呼び出します。

Declaration 宣言

init(unsafeUninitializedCapacity: Int, initializingWith initializer: (_ buffer: inout UnsafeMutableBufferPointer<Element>, _ initializedCount: inout Int) throws -> Void) rethrows

Parameters パラメータ

unsafeUninitializedCapacity

The number of elements to allocate space for in the new array. 新しい配列において空間を割り当てる要素の数。

initializer

Discussion 解説

Inside the closure, set the initializedCount parameter to the number of elements that are initialized by the closure. The memory in the range buffer[0..<initializedCount] must be initialized at the end of the closure’s execution, and the memory in the range buffer[initializedCount...] must be uninitialized. This postcondition must hold even if the initializer closure throws an error. クロージャ内部で、initializedCountパラメータを、クロージャによって初期化される要素の数に設定してください。範囲buffer[0..<initializedCount]の中のメモリは、クロージャの遂行の終わりで初期化されなければなりません、そして範囲buffer[initializedCount...]の中のメモリは、未初期化でなければなりません。この事後条件は、たとえinitializerクロージャがエラーをスローするとしても保持されなければなりません。