Generic Function
withUnsafeBytes(of:_:)
Invokes the given closure with a buffer pointer covering the raw bytes of the given argument.
与えられたクロージャを、与えられた引数の生のバイトを変換しているバッファポインタとともに発動します。
Technology
- Swift Standard Library
Swift標準ライブラリ
Declaration
宣言
func withUnsafeBytes<T, Result>(of value: inout T, _ body: (UnsafeRawBufferPointer
) throws -> Result) rethrows -> Result
Parameters
パラメータ
value
An instance to temporarily access through a raw buffer pointer. Note that the inout
exclusivity rules mean that, like any other inout
argument, value
cannot be directly accessed by other code for the duration of body
. Access must only occur through the pointer argument to body
until body
returns.
生のバッファポインタを通して一時的にアクセスされることになるインスタンス。inout
排他規則が意味することに注意してください、何か他のinout
と同様に、value
はbody
の継続期間には他のコードによって直接にアクセス可能ではありません。アクセスは、body
に対するポインタ引数を通して、body
が返るまでに、発生するだけでなければなりません。
body
A closure that takes a raw buffer pointer to the bytes of value
as its sole argument. If the closure has a return value, that value is also used as the return value of the withUnsafeBytes(of:_:)
function. The buffer pointer argument is valid only for the duration of the closure’s execution. It is undefined behavior to attempt to mutate through the pointer by conversion to UnsafeMutableRawBufferPointer
or any other mutable pointer type. If you want to mutate a value by writing through a pointer, use withUnsafeMutableBytes(of:_:)
instead.
value
のバイトへの生のバッファポインタをそれの唯一の引数として取るクロージャ。クロージャが戻り値を持つならば、その値はまたwithUnsafeBytes(of:_:)
関数の戻り値としても使われます。バッファポインタは、ただクロージャの実行の間に対してのみ有効とされます。ポインタを通してUnsafeMutableRawBufferPointer
または何か他の可変ポインタ型への変換によって変化させようと試みることは、未定義挙動です。あなたがある値をポインタを通して書き込むことで変化させたいならば、withUnsafeMutableBytes(of:_:)
を代わりに使ってください。
Return Value
戻り値
The return value, if any, of the body
closure.
body
クロージャの、もしあれば、戻り値。
Discussion
解説
The buffer pointer argument to the body
closure provides a collection interface to the raw bytes of value
. The buffer is the size of the instance passed as value
and does not include any remote storage.
body
クロージャへのバッファポインタ引数は、value
の生のバイトへのコレクションインターフェイスを提供します。バッファは、value
として渡されるインスタンスの大きさで、あらゆるリモートストレージを含みません。