Calls the given closure with a pointer to the array’s mutable contiguous storage.
与えられたクロージャを配列のもつ可変の隣接ストレージへのポインタとともに呼び出します。
Availability
iOS 8.0+
iPadOS 8.0+
macOS 10.10+
Mac Catalyst 13.0+
tvOS 9.0+
watchOS 2.0+
Xcode 10.0+
Technology
Swift Standard Library
Swift標準ライブラリ
Declaration
宣言
mutatingfuncwithUnsafeMutableBufferPointer<R>(_body: (inoutUnsafeMutableBufferPointer<Element>) throws -> R) rethrows -> R
Parameters
パラメータ
body
A closure with an UnsafeMutableBufferPointer parameter that points to the contiguous storage for the array. If no such storage exists, it is created. If body has a return value, that value is also used as the return value for the withUnsafeMutableBufferPointer(_:) method. The pointer argument is valid only for the duration of the method’s execution.
あるクロージャでUnsafeMutableBufferPointerパラメータを持ち、それはその配列のための隣接ストレージを指し示します。そのようなストレージが存在しないならば、それは作成されます。bodyが戻り値を持つならば、その値はまたwithUnsafeMutableBufferPointer(_:)メソッドの戻り値としても使われます。ポインタ引数は、ただメソッドの実行の間に対してのみ有効です。
Return Value
戻り値
The return value, if any, of the body closure parameter.bodyクロージャパラメータの戻り値、もしあれば。
Discussion
解説
Often, the optimizer can eliminate bounds checks within an array algorithm, but when that fails, invoking the same algorithm on the buffer pointer passed into your closure lets you trade safety for speed.
しばしば、最適化機能は配列アルゴリズム内部で境界検査を省くことができます、しかしそれが失敗する時、同じアルゴリズムをあなたのクロージャへ渡されるバッファポインタ上で発動することは、あなたに安全をスピードと交換させます。
The following example shows how modifying the contents of the UnsafeMutableBufferPointer argument to body alters the contents of the array:
以下の例は、bodyへのUnsafeMutableBufferPointer引数の内容の修正が、配列の内容を改めることを示します:
The pointer passed as an argument to body is valid only during the execution of withUnsafeMutableBufferPointer(_:). Do not store or return the pointer for later use.
引数としてbodyに渡されるポインタは、withUnsafeMutableBufferPointer(_:)の実行の間のみ有効です。後で使うためにポインタを格納したり返したりしないでください。
Calls the given closure with a pointer to the underlying bytes of the array’s mutable contiguous storage.
与えられたクロージャを、配列の可変の隣接ストレージの基礎をなすバイトへのポインタとともに呼び出します。