A closure with an Unsafe
parameter that points to the contiguous storage for the array. If body
has a return value, that value is also used as the return value for the with
method. The pointer argument is valid only for the duration of the method’s execution.
あるクロージャでUnsafe
パラメータを持ち、それはその配列のための隣接ストレージを指し示します。body
が戻り値を持つならば、その値はまたwith
メソッドの戻り値としても使われます。ポインタ引数は、ただメソッドの実行の間に対してのみ有効です。
withUnsafeBufferPointer(_:)
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 宣言
func withUnsafeBufferPointer<R>(_ body: (UnsafeBufferPointer
<Element>) throws -> R) rethrows -> R
Parameters パラメータ
body
Buffer Pointer Unsafe Buffer Pointer(_:) Buffer Pointer Unsafe Buffer Pointer(_:)
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 you can iterate over the contents of the buffer pointer: 次の例は、どのようにあなたがバッファポインタの内容にわたって反復できるかを示します:
The pointer passed as an argument to body
is valid only during the execution of with
. Do not store or return the pointer for later use.
引数としてbody
に渡されるポインタは、with
の実行の間のみ有効です。後で使うためにポインタを格納したり返したりしないでください。