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

withUnsafeBytes(_:)

Calls the given closure with a pointer to the underlying bytes of the type’s contiguous storage. 与えられたクロージャを、この型のもつ隣接ストレージの基礎をなすバイトそれらへのあるポインタで呼び出します。

Declaration 宣言

func withUnsafeBytes<R>(_ body: (UnsafeRawBufferPointer) throws -> R) rethrows -> R

Parameters パラメータ

body

A closure with an UnsafeRawBufferPointer parameter that points to the contiguous storage for the type. If no such storage exists, the method creates it. If body has a return value, this method also returns that value. The argument is valid only for the duration of the closure’s execution. あるクロージャ、それはあるUnsafeRawBufferPointerパラメータをもち、それはその型に対する隣接ストレージを指し示すものです。そのようなストレージが存在しないならば、このメソッドはそれを作成します。bodyがある戻り値を持つならば、このメソッドは同様にその値を返します。引数は、このクロージャのもつ遂行の間に対してのみ有効です。

Return Value 戻り値

The return value, if any, of the body closure parameter. bodyクロージャパラメータの戻り値、もしあれば。

Discussion 議論

The following example copies the bytes from a string encoded using utf8 into a buffer of UInt8: 以下の例は、いくつかのバイトをutf8を使ってエンコードされるある文字列からUInt8のバッファへとコピーします:


let data = "Hello".data(using: .utf8)
var byteBuffer: [UInt8] = []
_ = data?.withUnsafeBytes { buffer in
    byteBuffer.append(contentsOf: buffer)
}


// byteBuffer = [72, 101, 108, 108, 111]