文書   >   Swift   >   Swift 標準ライブラリ  >     手動でメモリ管理   >   UnsafeBufferPointer
汎用構造体
UnsafeBufferPointer
メモリに連続して格納された要素のバッファへの所有されていないコレクションインタフェース。
宣言
概観
UnsafeBufferPointer インスタンスを低レベルの操作で使用して、一意性チェックを排除し、リリースモードでは境界チェックを排除できます。境界チェックは常にデバッグモードで実行されます。
UnsafeBufferPointer の意味
UnsafeBufferPointer インスタンスはメモリ内へのビューであり、それが参照するメモリを所有していません。 UnsafeBufferPointer 型の値をコピーしても、基になるメモリに格納されているインスタンスはコピーされません。ただし、 UnsafeBufferPointer インスタンスを使用して別のコレクションを初期化すると、そのインスタンスは参照先のメモリから新しいコレクションにコピーされます。
トピックス
型エイリアス
typealias UnsafeBufferPointer.Index
コレクション内の位置を表す型です。
typealias UnsafeBufferPointer.Indices
コレクションをサブスクリプトするのに有効なインデックスを昇順で表す型。
typealias UnsafeBufferPointer.Regions
Element が UInt8 の時利用可能です。
typealias UnsafeBufferPointer.SubSequence
コレクションの要素の連続した部分範囲を表すシーケンス。
  Beta  
イニシャライザ
init(UnsafeMutableBufferPointer<Element>)
与えられた可変バッファポインタと同じメモリを参照する不変型付きバッファポインタを作成します。
init(rebasing: Slice<UnsafeMutableBufferPointer<Element>>)
与えられたバッファスライスと同じメモリ上にバッファを作成します。
init(rebasing: Slice<UnsafeBufferPointer<Element>>)
与えられたバッファスライスと同じメモリ上にバッファを作成します。
init(start: UnsafePointer<Element>?, count: Int)
与えられたポインタで始まる指定された数の連続するインスタンスに新しいバッファポインタを作成します。
インスタンスプロパティ
var baseAddress: UnsafePointer<Element>?
バッファの最初の要素へのポインタ。
バッファ内の要素の数。
デバッグに適したバッファのテキスト表現。
"最後を過ぎた" 位置、つまり最後の有効なサブスクリプト引数より 1 だけ大きい位置。
コレクションの最初の要素。
var indices: UnsafeBufferPointer<Element>.Indices
コレクションのサブスクリプト付けに有効な昇順のインデックス。
コレクションのサブスクリプト付けに有効な昇順のインデックス。
コレクションが空かどうかを示すブール値。
コレクションの最後の要素。
var lazy: LazySequence<UnsafeBufferPointer<Element>>
このシーケンスと同じ要素を含むが、map や filter などの一部の操作が遅延して実装されるシーケンス。
var regions: CollectionOfOne<UnsafeBufferPointer<UInt8>>
Element が UInt8 である場合利用可能です。
空でないバッファ内の最初の要素のインデックス。
コレクション内の要素の数以下の値。
インスタンスメソッド
func allSatisfy((Element) -> Bool) -> Bool
シーケンスのすべての要素が与えられた述語 (predicate) を満たすかどうかを示すブール値を返します。
func compactMap<ElementOfResult>((Element) -> ElementOfResult?) -> [ElementOfResult]
このシーケンスの各要素を使用して、与えられた変換を呼び出した結果の nil でない結果を含む配列を返します。
func contains(Element) -> Bool
シーケンスに与えられた要素が含まれているかどうかを示すブール値を返します。
Element が Equatable に準拠している場合利用可能です。
func contains(where: (Element) -> Bool) -> Bool
与えられた述語 (predicate) を満たす要素がシーケンスに含まれているかどうかを示すブール値を返します。
このバッファポインタのベースアドレスで以前に割り当てられたメモリブロックの割り当てを解除します。
func difference<C>(from: C) -> CollectionDifference<Element>
与えられたコレクションからこのコレクションの順序付けされた要素を生成するために必要な差を返します。
Element が Equatable に準拠している場合利用可能です。
  Beta  
与えられた述語 (predicate) を等価性テストとして使用して、与えられたコレクションからこのコレクションの順序付けされた要素を生成するために必要な差を返します。
  Beta  
func distance(from: Int, to: Int) -> Int
2 つのインデックス間の距離を返します。
func drop(while: (Element) -> Bool) -> Slice<UnsafeBufferPointer<Element>>
predicate が true を返し、残りの要素を返す間、要素をスキップして部分シーケンスを返します。
func dropFirst(Int) -> Slice<UnsafeBufferPointer<Element>>
与えられた数の初期要素以外の全てを含む部分シーケンスを返します。
func dropLast(Int) -> Slice<UnsafeBufferPointer<Element>>
指定された数の最終要素以外の全てを含む部分シーケンスを返します。
func elementsEqual<OtherSequence>(OtherSequence) -> Bool
このシーケンスと別のシーケンスに同じ要素が同じ順序で含まれているかどうかを示すブール値を返します。
Element が Equatable に準拠している場合利用可能です。
与えられた述語 (predicate) を等価性テストとして使用して、このシーケンスと別のシーケンスに同じ要素が同じ順序で含まれているかどうかを示すブール値を返します。
func enumerated() -> EnumeratedSequence<UnsafeBufferPointer<Element>>
ペアのシーケンス(n、x)を返しますが、ここで n はゼロから始まる連続した整数を表し、x はシーケンスの要素を表します。
func filter((Element) -> Bool) -> [Element]
与えられた述語 (predicate) を満たすシーケンスの要素を順番に含む配列を返します。
func first(where: (Element) -> Bool) -> Element?
与えられた述語 (predicate) を満たすシーケンスの最初の要素を返します。
func firstIndex(of: Element) -> Int?
コレクション内に指定された値が現れる最初のインデックスを返します。
Element が Equatable に準拠する場合使用可能。
func firstIndex(where: (Element) -> Bool) -> Int?
与えられた述語 (predicate) を満たすコレクションの要素の最初のインデックスを返します。
func flatMap<SegmentOfResult>((Element) -> SegmentOfResult) -> [SegmentOfResult.Element]
このシーケンスの各要素で、与えられた変換を呼び出した連結した結果を含む配列を返します。
func flatMap<ElementOfResult>((Element) -> ElementOfResult?) -> [ElementOfResult]
  廃止  
func forEach((Element) -> Void)
for-in ループと同じ順序で、シーケンス内の各要素で、与えられたクロージャを呼び出します。
func formIndex(inout Int, offsetBy: Int)
与えられたインデックスを指定された距離だけオフセットします。
func formIndex(inout Int, offsetBy: Int, limitedBy: Int) -> Bool
与えられたインデックスを指定された距離だけオフセットするか、与えられた制限インデックスと等しくします。
func formIndex(after: inout Int)
与えられたインデックスをその後継者と置き換えます。
func formIndex(before: inout Int)
与えられたインデックスをその前任者と置き換えます。
func index(Int, offsetBy: Int) -> Int
与えられたインデックスから指定された距離にあるインデックスを返します。
func index(Int, offsetBy: Int, limitedBy: Int) -> Int?
与えられた制限インデックスをその距離が超えない限り、与えられたインデックスから指定された距離にあるインデックスを返します。
func index(after: Int) -> Int
与えられたインデックスの直後の位置を返します。
func index(before: Int) -> Int
与えられたインデックスの直前の位置を返します。
func index(of: Element) -> Int?
コレクション内で指定された値が現れる最初のインデックスを返します。
Element が Equatable に準拠している場合利用可能です。
  廃止  
func joined() -> FlattenSequence<UnsafeBufferPointer<Element>>
連結された、シーケンスのこのシーケンスの要素を返します。
Element が Sequence に準拠している場合利用可能です。
シーケンスのこのシーケンスの連結された要素を返し、各要素の間に与えられた分離符号を挿入します。
Element が Sequence に準拠している場合利用可能です。
func joined(separator: String) -> String
シーケンスの要素を連結し、各要素の間に与えられた分離符号を追加することにより、新しい文字列を返します。
Element が String の場合利用可能です。
func joined(separator: String) -> String
シーケンスの要素を連結し、各要素の間に与えられた分離符号を追加することにより、新しい文字列を返します。
Element が StringProtocol に準拠している場合利用可能です。
func last(where: (Element) -> Bool) -> Element?
与えられた述語 (predicate) を満たすシーケンスの最後の要素を返します。
func lastIndex(of: Element) -> Int?
コレクション内で指定された値が表示される最後のインデックスを返します。
Element が Equatable に準拠している場合利用可能です。
func lastIndex(where: (Element) -> Bool) -> Int?
与えられた述語 (predicate) に一致するコレクション内の最後の要素のインデックスを返します。
func lexicographicallyPrecedes<OtherSequence>(OtherSequence) -> Bool
より小なり演算子 (<) を使用して要素を比較し、辞書の順序でシーケンスが別のシーケンスに先行するかどうかを示すブール値を返します。
Element が Comparable に準拠している場合利用可能です。
与えられた述語 (predicate) を使用して要素を比較して、辞書の順序でシーケンスが別のシーケンスに先行するかどうかを示すブール値を返します。
func makeIterator() -> UnsafeBufferPointer<Element>.Iterator
このバッファーの要素の繰り返し因子を返します。
func map<T>((Element) -> T) -> [T]
シーケンスの要素に与えられたクロージャをマッピングした結果を含む配列を返します。
シーケンス内の最大の要素を返します。
Element が Comparable に準拠している場合利用可能です。
func max(by: (Element, Element) -> Bool) -> Element?
与えられた述語 (predicate) を要素間の比較として使用して、シーケンス内の最大の要素を返します。
シーケンス内の最小の要素を返します。
Element が Comparable に準拠している場合利用可能です。
func min(by: (Element, Element) -> Bool) -> Element?
与えられた述語 (predicate) を要素間の比較として使用して、シーケンス内の最小の要素を返します。
func prefix(Int) -> Slice<UnsafeBufferPointer<Element>>
コレクションの初期要素を含む、指定された最大長までの部分シーケンスを返します。
func prefix(through: Int) -> Slice<UnsafeBufferPointer<Element>>
コレクションの初めから指定された位置までの部分シーケンスを返します。
func prefix(upTo: Int) -> Slice<UnsafeBufferPointer<Element>>
コレクションの開始から指定された位置まで (ただし、それを含まれない) の部分シーケンスを返します。
func prefix(while: (Element) -> Bool) -> Slice<UnsafeBufferPointer<Element>>
predicate が false を返し、残りの要素をスキップするまで、初期要素を含む部分シーケンスを返します。
func randomElement() -> Element?
コレクションのランダムな要素を返します。
func randomElement<T>(using: inout T) -> Element?
与えられた発生器をランダムさのソースとして使用して、コレクションのランダムな要素を返します。
func reduce<Result>(Result, (Result, Element) -> Result) -> Result
与えられたクロージャを使用してシーケンスの要素を結合した結果を返します。
func reduce<Result>(into: Result, (inout Result, Element) -> ()) -> Result
与えられたクロージャを使用してシーケンスの要素を結合した結果を返します。
func reversed() -> ReversedCollection<UnsafeBufferPointer<Element>>
コレクションの要素を逆の順序で表示するビューを返します。
func shuffled() -> [Element]
シャッフルされたシーケンスの要素を返します。
func shuffled<T>(using: inout T) -> [Element]
乱数の発生源として与えられた発生器を使用してシャッフルされたシーケンスの要素を返します。
並べ替えられたシーケンスの要素を返します。
Element が Comparable に準拠する場合に利用可能。
func sorted(by: (Element, Element) -> Bool) -> [Element]
与えられた述語 (predicate) を要素間の比較として使用して、並べ替えられたシーケンスの要素を返します。
与えられた述語 (predicate) を満たす要素を含まない、コレクションの可能な限り長い部分シーケンスを順番に返します。
与えられた要素に等しい要素のまわりの、コレクションの可能な限り長い部分シーケンスを順番に返します。
Element が Equatable に準拠している場合利用可能です。
与えられた要素に等しい要素のまわりの、シーケンスの可能な限り長い部分シーケンスを順番に返します。
Element が Equatable に準拠している場合利用可能です。
func starts<PossiblePrefix>(with: PossiblePrefix) -> Bool
シーケンスの初期要素が別のシーケンスの要素と同じかどうかを示すブール値を返します。
Element が Equatable に準拠している場合利用可能です。
与えられた述語 (predicate) を等価性テストとして使用して、シーケンスの初期要素が別のシーケンスの要素と等しいかどうかを示すブール値を返します。
func suffix(Int) -> Slice<UnsafeBufferPointer<Element>>
コレクションの最終要素を含む、与えられた最大長までの部分シーケンスを返します。
func suffix(from: Int) -> Slice<UnsafeBufferPointer<Element>>
指定した位置からコレクションの最後までの部分シーケンスを返します。
func withContiguousStorageIfAvailable<R>((UnsafeBufferPointer<Element>) -> R) -> R?
body(p) を呼び出し、ここで p はコレクションの連続した記憶領域へのポインタです。そのような記憶領域が存在しない場合は、最初に作成されます。コレクションが連続した記憶領域形式の内部表現をサポートしていない場合、body は呼び出されず、nil が返されます。
このバッファが参照するメモリを与えられた型に一時的に結合しながら、与えられたクロージャを実行します。
func withUnsafeBytes<R>((UnsafeRawBufferPointer) -> R) -> R
Element が UInt8 の時利用可能です。
サブスクリプト
指定された位置にある要素にアクセスします。
subscript<R>(R) -> Slice<UnsafeBufferPointer<Element>>
範囲式で指定されたコレクションの要素の連続した部分範囲にアクセスします。
subscript((UnboundedRange_) -> ()) -> Slice<UnsafeBufferPointer<Element>>
subscript(Range<Int>) -> Slice<UnsafeBufferPointer<Element>>
バッファの要素の連続した部分範囲にアクセスします。
構造体
struct UnsafeBufferPointer.Iterator
UnsafeBufferPointer または UnsafeMutableBufferPointer インスタンスによって参照されるバッファ内の要素の反復因子。
関連
以下に準拠
ContiguousBytes
Element が UInt8 の時準拠します。
CustomDebugStringConvertible
DataProtocol
Element が UInt8 の時準拠します。
RandomAccessCollection
以下も見よ
型ポインタ
特定の型のデータにアクセスするためのポインタ。
特定の型のデータにアクセスして操作するためのポインタ。
struct UnsafeMutableBufferPointer
メモリに連続して格納された可変要素のバッファへの所有されていないコレクションインタフェース。
この文書には、開発中の API または技術に関する予備的な情報が含まれています。この情報は変更される可能性があり、このドキュメントに従って実装されているソフトウェアは、最終的なオペレーティングシステムソフトウェアでテストする必要があります。
アップルのベータ版ソフトウェアの使い方についてもっと知る
トップへ
トップへ
トップへ
トップへ
トップへ