文書   >   Swift   >   Array
汎用構造体
Array
順序付けられた、ランダムアクセスコレクション。
宣言
概観
配列 (Arrays) は、アプリで最も一般的に使用されるデータ型の 1 つです。アプリのデータを整理するために配列を使用して下さい。具体的には、Array 型を使用して、単一の型の要素、つまり配列の Element 型を保持して下さい。配列には、整数から文字列、クラスまで、あらゆる種類の要素を格納できます。
Swift を使用すると、配列リテラルを使用してコード内に配列を簡単に作成できます。値のカンマ区切りリストを角括弧で囲むだけです。他に情報がなければ、Swift は指定された値を含む配列を作成し、自動的に配列の Element 型を推測します。例えば:
// An array of 'Int' elements let oddNumbers = [1, 3, 5, 7, 9, 11, 13, 15] // An array of 'String' elements let streets = ["Albemarle", "Brandywine", "Chesapeake"]
宣言に配列の Element 型を指定することで、空の配列を作成できます。例えば:
// Shortened forms are preferred var emptyDoubles: [Double] = [] // The full type name is also allowed var emptyFloats: Array<Float> = Array()
固定した数のデフォルト値で事前に初期化されている配列が必要な場合は、Array(repetition:count:) イニシャライザを使用してください。
var digitCounts = Array(repeating: 0, count: 10)
print(digitCounts)
// Prints "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]"
配列の値にアクセス
配列のすべての要素に対して操作を実行する必要がある場合は、for-in ループを使用して配列の内容を繰り返し処理します。
for street in streets {
print("I don't live on \(street).")
}
// Prints "I don't live on Albemarle."
// Prints "I don't live on Brandywine."
// Prints "I don't live on Chesapeake."
isEmpty プロパティを使用して配列に要素があるかどうかをすばやく確認するか、count プロパティを使用して配列内の要素数を見つけます。
if oddNumbers.isEmpty {
print("I don't know any odd numbers.")
} else {
print("I know \(oddNumbers.count) odd numbers.")
}
// Prints "I know 8 odd numbers."
配列の最初の要素と最後の要素の値に安全にアクセスするには、first プロパティと last プロパティを使用します。配列が空の場合、これらのプロパティは nil です。
if let firstElement = oddNumbers.first, let lastElement = oddNumbers.last { print(firstElement, lastElement, separator: ", ") } // Prints "1, 15" print(emptyDoubles.first, emptyDoubles.last, separator: ", ") // Prints "nil, nil"
サブスクリプトを使って個々の配列要素にアクセスできます。空でない配列の最初の要素は常にインデックスゼロです。配列には、ゼロから配列のカウントまでの、カウントを含めない、任意の整数でサブスクリプトを付けることができます。負の数または count 以上のインデックスを使用すると、実行時エラーが発生します。例えば:
print(oddNumbers[0], oddNumbers[3], separator: ", ") // Prints "1, 7" print(emptyDoubles[0]) // Triggers runtime error: Index out of range
要素の追加と削除
あなたが教えているクラスにサインアップしている生徒の名前のリストを保管する必要があるとします。登録期間中は、生徒がクラスを追加および削除したときに名前を追加および削除する必要があります。
var students = ["Ben", "Ivy", "Jordell"]
配列の最後に単一の要素を追加するには、append(_:) メソッドを使用します。append(contentsOf:) メソッドに別の配列または任意の種類のシーケンスを渡して、複数の要素を同時に追加します。
students.append("Maxime")
students.append(contentsOf: ["Shakia", "William"])
// ["Ben", "Ivy", "Jordell", "Maxime", "Shakia", "William"]
単一の要素に対して insert(_:at:) メソッドを使用し、別のコレクションまたは配列リテラルから複数の要素を挿入するためには insert(contentsOf:at:) を使用して、配列の途中に新しい要素を追加できます。そのインデックス以降のインデックスの要素は、スペースを空けるために後ろに移動されます。
students.insert("Liam", at: 3)
// ["Ben", "Ivy", "Jordell", "Liam", "Maxime", "Shakia", "William"]
配列から要素を削除するには、remove(at:)、removeSubrange(_:)、および removeLast() メソッドを使用して下さい。
// Ben's family is moving to another state students.remove(at: 0) // ["Ivy", "Jordell", "Liam", "Maxime", "Shakia", "William"] // William is signing up for a different class students.removeLast() // ["Ivy", "Jordell", "Liam", "Maxime", "Shakia"]
新しい値をサブスクリプトに割り当てることで、既存の要素を新しい値に置き換えることができます。
if let i = students.firstIndex(of: "Maxime") {
students[i] = "Max"
}
// ["Ivy", "Jordell", "Liam", "Max", "Shakia"]
配列のサイズを大きくする
すべての配列は、その内容を保持するために特定の量のメモリを予約します。配列に要素を追加し、その配列が予約された容量を超え始めると、配列はより大きなメモリ領域を割り当て、その要素を新しい記憶領域にコピーします。新しい記憶領域は、古い記憶領域のサイズの倍数です。この指数関数的成長戦略は、要素の追加が一定の時間で行われ、多くの追加操作のパフォーマンスが平均化されることを意味します。再割り当てをトリガーする追加操作はパフォーマンス上のコストがかかりますが、配列が大きくなるにつれて発生する頻度は少なくなります。
およそいくつの要素を格納する必要があるかがわかっている場合は、中間の再割り当てを避けるために、配列に追加する前に reserveCapacity(_:) メソッドを使用してください。capacity と count のプロパティを使用して、より大きな記憶域を割り当てずに配列が格納できる要素数を決定します。
ほとんどの Element 型の配列の場合、この記憶領域は連続したメモリのブロックです。Element 型がクラスまたは @objc プロトコル型の配列の場合、この記憶領域は連続したメモリのブロックまたは NSArray のインスタンスになります。NSArray の任意のサブクラスは Array になる可能性があるため、この場合の表現または効率についての保証はありません。
配列のコピーの修正
各々の配列は、そのすべての要素の値を含む独立した値を持ちます。整数や他の構造体などの単純型の場合、これは、1 つの配列内の値を変更しても、その要素の値はその配列のコピー内では変更されないことを意味します。例えば:
var numbers = [1, 2, 3, 4, 5] var numbersCopy = numbers numbers[0] = 100 print(numbers) // Prints "[100, 2, 3, 4, 5]" print(numbersCopy) // Prints "[1, 2, 3, 4, 5]"
配列内の要素がクラスのインスタンスである場合、その意味は同じですが、最初は異なるように見えます。この場合、配列に格納されている値は、配列の外部に存在するオブジェクトへの参照です。1 つの配列内のオブジェクトへの参照を変更した場合、その配列だけが新しいオブジェクトへの参照を持ちます。ただし、2 つの配列に同じオブジェクトへの参照が含まれている場合は、両方の配列からそのオブジェクトのプロパティへの変更を確認できます。例えば:
// An integer type with reference semantics class IntegerReference { var value = 10 } var firstIntegers = [IntegerReference(), IntegerReference()] var secondIntegers = firstIntegers // Modifications to an instance are visible from either array firstIntegers[0].value = 100 print(secondIntegers[0].value) // Prints "100" // Replacements, additions, and removals are still visible // only in the modified array firstIntegers[0] = IntegerReference() print(firstIntegers[0].value) // Prints "10" print(secondIntegers[0].value) // Prints "100"
標準ライブラリ内のすべての可変サイズコレクションと同様に、配列は書き込み時コピーの最適化を使用します。いずれかのコピーを変更するまで、配列の複数のコピーが同じ記憶領域を共有します。それが起こると、変更されている配列はその記憶領域をそれ自身の唯一所有されているコピーで置き換え、それはその時その場で変更されます。コピー量を減らすことができる最適化が時々適用されます。
これは、配列が他のコピーと記憶領域を共有している場合、その配列に対する最初の変更操作で配列をコピーするコストが発生することを意味します。その記憶領域の唯一の所有者である配列は、変更操作をその場で実行できます。
以下の例では、同じ記憶領域を共有する 2 つのコピーとともに numbers 配列が作成されます。元の numbers の配列が変更されると、変更を行う前にその記憶領域の唯一のコピーが作成されます。2 つのコピーが元の記憶領域を共有し続けている間、nmubers へのさらなる修正が行われます。
var numbers = [1, 2, 3, 4, 5] var firstCopy = numbers var secondCopy = numbers // The storage for 'numbers' is copied here numbers[0] = 100 numbers[1] = 200 numbers[2] = 300 // 'numbers' is [100, 200, 300, 4, 5] // 'firstCopy' and 'secondCopy' are [1, 2, 3, 4, 5]
Array と NSArray 間のブリッジ
Array ではなく NSArray インスタンス内のデータを必要とする API にアクセスする必要がある場合は、型キャスト演算子 (as) を使用してインスタンスをブリッジします。ブリッジを可能にするには、配列の Element 型がクラス、@objc プロトコル (Objective-C からインポートされた、または @objc 属性でマークされたプロトコル)、または Foundation 型にブリッジする型でなければなりません。
以下の例は、write(to:atomically:) メソッドを使用するために、Array インスタンスを NSArray にブリッジする方法を示しています。この例では、colors 配列の String 要素が NSString にブリッジされているため、colors 配列を NSArray にブリッジできます。一方、その Element 型は Optional<String> であり、Foundation 型にはブリッジされないため、コンパイラは moreColors 配列をブリッジするのを防ぎます。
let colors = ["periwinkle", "rose", "moss"] let moreColors: [String?] = ["ochre", "pine"] let url = NSURL(fileURLWithPath: "names.plist") (colors as NSArray).write(to: url, atomically: true) // true (moreColors as NSArray).write(to: url, atomically: true) // error: cannot convert value of type '[String?]' to type 'NSArray'
配列の要素がすでにクラスまたは @objc プロトコルのインスタンスである場合、Array から NSArray へのブリッジには O(1) 時間および O(1) 空間が必要です。そうでなければ、O(n) の時間と空間がかかります。
目的の配列の要素型がクラスまたは @objc プロトコルの場合、NSArray から Array へのブリッジは、まず配列に対して copy(with:) メソッドを呼び出し (Objective-C では - copyWithZone:) 、不変コピーを取得してから追加の O(1) の時間がかかる Swift の簿記作業実行を行います。すでに不変の NSArray のインスタンスの場合、copy(with:) は通常 O(1) 時間内に同じ配列を返します。それ以外の場合、コピーのパフォーマンスは規定されていません。copy(with:) が同じ配列を返す場合、NSArray と Array のインスタンスは、Array の 2 つのインスタンスが記憶領域を共有するときに使用されるのと同じ書き込み時コピーの最適化を使用して記憶領域を共有します。
目的の配列の要素型が Foundation 型にブリッジする非クラス型である場合、NSArray から Array へのブリッジは、O(n) 時間内に連続した記憶領域への要素のコピーのブリッジを実行します。たとえば、NSArray から Array<Int> へのブリッジはそのようなコピーを実行します。Array インスタンスの要素にアクセスするときに、それ以上のブリッジは必要ありません。
ContiguousArray と ArraySlice 型はブリッジされません。これらの型のインスタンスは、常にその記憶領域として連続したメモリのブロックを持っています。
トピックス
配列の作成
配列リテラルを使用することに加えて、これらのイニシャライザを使用して配列を作成することもできます。
新しい、空の配列を作成します。
シーケンスの要素を含むコレクションの新しいインスタンスを作成します。
シーケンスの要素を含む配列を作成します。
init(repeating: Element, count: Int)
指定された数の、単一の繰り返し値を含む新しい配列を作成します。
配列の検査
コレクションが空かどうかを示すブール値。
配列内の要素数。
新しい記憶領域を割り当てずに配列に含めることができる要素の総数。
要素にアクセス
指定された位置にある要素にアクセスします。
コレクションの最初の要素。
コレクションの最後の要素。
subscript(Range<Int>) -> ArraySlice<Element>
配列の要素の連続した部分範囲にアクセスします。
subscript(Range<Int>) -> Slice<Array<Element>>
コレクションの要素の連続した部分範囲にアクセスします。
subscript<R>(R) -> ArraySlice<Element>
subscript<R>(R) -> ArraySlice<Element>
範囲式で指定されたコレクションの要素の連続した部分範囲にアクセスします。
subscript((UnboundedRange_) -> ()) -> ArraySlice<Element>
func randomElement() -> Element?
コレクションのランダムな要素を返します。
func randomElement<T>(using: inout T) -> Element?
乱数の発生源として与えられた発生器を使用して、コレクションのランダムな要素を返します。
要素の追加
配列の末尾に新しい要素を付け加えます。
指定された位置に新しい要素を挿入します。
func insert<C>(contentsOf: C, at: Int)
シーケンスの要素をコレクションの指定された位置に挿入します。
func replaceSubrange<C>(Range<Int>, with: C)
要素の範囲を指定したコレクション内の要素で置き換えます。
func replaceSubrange<C, R>(R, with: C)
指定された要素の部分範囲を与えられたコレクションで置き換えます。
指定された数の要素を格納するのに十分なスペースを確保します。
配列の結合
func append<S>(contentsOf: S)
シーケンスの要素を配列の末尾に追加します。
func append<S>(contentsOf: S)
シーケンスまたはコレクションの要素をこのコレクションの末尾に追加します。
static func + <Other>(Other, Array<Element>) -> Array<Element>
シーケンスとコレクションの要素を連結して新しいコレクションを作成します。
static func + <Other>(Array<Element>, Other) -> Array<Element>
コレクションとシーケンスの要素を連結して新しいコレクションを作成します。
static func + (Array<Element>, Array<Element>) -> Array<Element>
static func + <Other>(Array<Element>, Other) -> Array<Element>
2 つのコレクションの要素を連結して新しいコレクションを作成します。
static func += <Other>(inout Array<Element>, Other)
シーケンスの要素を範囲置換可能なコレクションに付け加えます。
static func += (inout Array<Element>, Array<Element>)
要素の削除
func remove(at: Int) -> Element
指定された位置にある要素を削除して返します。
func removeFirst() -> Element
コレクションの最初の要素を削除して返します。
指定された数の要素をコレクションの先頭から削除します。
func removeLast() -> Element
コレクションの最後の要素を削除して返します。
指定された数の要素をコレクションの末尾から削除します。
func removeSubrange(Range<Int>)
指定された部分範囲内の要素をコレクションから削除します。
指定された部分範囲内の要素をコレクションから削除します。
func removeAll(where: (Element) -> Bool)
与えられた述語 (predicate) を満たす全ての要素を取り除きます。
func removeAll(keepingCapacity: Bool)
配列からすべての要素を削除します。
コレクションの最後の要素を削除して返します。
要素の検索
func contains(Element) -> Bool
シーケンスに与えられた要素が含まれているかどうかを示すブール値を返します。
Element が Equatable に準拠している場合に利用可能です。
func contains(where: (Element) -> Bool) -> Bool
指定された述語 (predicate) を満たす要素がシーケンスに含まれているかどうかを示すブール値を返します。
func allSatisfy((Element) -> Bool) -> Bool
シーケンスのすべての要素が与えられた述語 (predicate) を満たすかどうかを示すブール値を返します。
func first(where: (Element) -> Bool) -> Element?
与えられた述語を満たすシーケンスの最初の要素を返します。
func firstIndex(of: Element) -> Int?
指定された値がコレクション内で現れる最初のインデックスを返します。
Element が Equatable に準拠している場合に利用可能です。
func index(of: Element) -> Int?
指定された値がコレクション内で現れる最初のインデックスを返します。
Element が Equatable に準拠している場合に利用可能です。
  廃止  
func firstIndex(where: (Element) -> Bool) -> Int?
コレクションの要素が与えられた述語 (predicate) を満たす最初のインデックスを返します。
func last(where: (Element) -> Bool) -> Element?
与えられた述語 (predicate) を満たすシーケンスの最後の要素を返します。
func lastIndex(of: Element) -> Int?
指定した値がコレクション内で現れる最後のインデックスを返します。
Element が Comparable に準拠している場合に利用可能です。
func lastIndex(where: (Element) -> Bool) -> Int?
与えられた述語 (predicate) に一致するコレクション内の最後の要素のインデックスを返します。
シーケンス内の最小の要素を返します。
Element が Comparable に準拠している場合に利用可能です。
func min(by: (Element, Element) -> Bool) -> Element?
与えられた述語 (predicate) を要素間の比較として使って、シーケンス内の最小の要素を返します。
シーケンス内の最大の要素を返します。
Element が Comparable に準拠している場合に利用可能です。
func max(by: (Element, Element) -> Bool) -> Element?
与えられた述語 (predicate) を要素間の比較として使って、シーケンス内の最大の要素を返します。
要素の選択
func prefix(Int) -> ArraySlice<Element>
指定された最大長までの、コレクションの最初の要素を含む部分シーケンスを返します。
func prefix(through: Int) -> ArraySlice<Element>
コレクションの先頭から指定された位置までの部分シーケンスを返します。
func prefix(upTo: Int) -> ArraySlice<Element>
コレクションの先頭から指定された位置までの、しかしその位置は含まない、部分シーケンスを返します。
func prefix(while: (Element) -> Bool) -> ArraySlice<Element>
predicate が false を返し、残りの要素を飛び越えるまで、最初の要素を含む部分シーケンスを返します。
func suffix(Int) -> ArraySlice<Element>
コレクションの最後の要素を含む、与えられた最大長までの部分シーケンスを返します。
func suffix(from: Int) -> ArraySlice<Element>
指定された位置からコレクションの末尾までの部分シーケンスを返します。
要素の除外
func dropFirst(Int) -> ArraySlice<Element>
与えられた数の最初の要素を除くすべてを含む部分シーケンスを返します。
func dropLast(Int) -> ArraySlice<Element>
指定された数の最後の要素を除くすべてを含む部分シーケンスを返します。
func drop(while: (Element) -> Bool) -> ArraySlice<Element>
predicate が true を返し、残りの要素を返す間、要素をスキップして部分シーケンスを返します。
配列の変換
func map<T>((Element) -> T) -> [T]
与えられたクロージャをシーケンスの要素にマッピングした結果を含む配列を返します。
func flatMap<SegmentOfResult>((Element) -> SegmentOfResult) -> [SegmentOfResult.Element]
このシーケンスの各要素を使用して、与えられた変換を呼び出した結果を連結したものを含む配列を返します。
func flatMap<ElementOfResult>((Element) -> ElementOfResult?) -> [ElementOfResult]       廃止  
func compactMap<ElementOfResult>((Element) -> ElementOfResult?) -> [ElementOfResult]
このシーケンスの各要素を使用して、与えられた変換を呼び出した結果の nil 以外の結果を含む配列を返します。
func reduce<Result>(Result, (Result, Element) -> Result) -> Result
与えられたクロージャを使用してシーケンスの要素を組み合わせた結果を返します。
func reduce<Result>(into: Result, (inout Result, Element) -> ()) -> Result
与えられたクロージャを使用してシーケンスの要素を組み合わせた結果を返します。
var lazy: LazySequence<Array<Element>>
このシーケンスと同じ要素を含むが、map や filter などの一部の操作が遅延して実装されているシーケンス。
配列の要素を繰り返し処理
func forEach((Element) -> Void)
for-in ループと同じ順序で、シーケンス内の各要素に対して与えられたクロージャを呼び出します。
func enumerated() -> EnumeratedSequence<Array<Element>>
(n、x) のペアのシーケンスを返します。ここで、n はゼロから始まる連続した整数を表し、x はシーケンスの要素を表します。
func makeIterator() -> IndexingIterator<Array<Element>>
コレクションの要素に対する反復因子を返します。
コレクション内の要素数以下の値。
配列の要素を並べ替え
コレクションをその場で並べ替えます。
Element が Comparable に準拠している場合に利用できます。
func sort(by: (Element, Element) -> Bool)
与えられた述語を要素間の比較として使用して、コレクションをその場で並べ替えます。
並べ替えられたシーケンスの要素を返します。
Element が Comparable に準拠している場合に利用できます。
func sorted(by: (Element, Element) -> Bool) -> [Element]
与えられた述語を要素間の比較として使用して並べ替えられた、シーケンスの要素を返します。
コレクションの要素をその場で逆の順にします。
func reversed() -> ReversedCollection<Array<Element>>
コレクションの要素を逆の順序で表示するビューを返します。
コレクションをその場でシャッフルします。
func shuffle<T>(using: inout T)
乱数の発生源として与えられた発生器を使用して、コレクションをその場でシャッフルします。
func shuffled() -> [Element]
シーケンスの要素をシャッフルして返します。
func shuffled<T>(using: inout T) -> [Element]
乱数の発生源として与えられた発生器を使用して、シャッフルされたシーケンスの要素を返します。
func partition(by: (Element) -> Bool) -> Int
与えられた述語に一致するすべての要素が、一致しないすべての要素の後になるように、コレクションの要素を並べ替えます。
コレクションの指定されたインデックスの値を交換します。
要素の分割と結合
与えられた要素と等しい要素を中心にして、コレクションの可能な限り長い部分シーケンスを順番に返します。
Element が Equatable に準拠している場合に使用できます。
与えられた述語を満たす要素を含まないように、コレクションの可能な限り長い部分シーケンスを順番に返します。
func joined() -> FlattenSequence<Array<Element>>
このシーケンスのシーケンスの要素を連結して返します。
Element が Sequence に準拠している場合に使用できます。
func joined<Separator>(separator: Separator) -> JoinedSequence<Array<Element>>
このシーケンスのシーケンスの連結された要素を、各要素の間に与えられた区切り記号を挿入して返します。
Element が Sequence に準拠している場合に使用できます。
func joined(separator: String) -> String
シーケンスの要素を連結し、各要素の間に与えられた区切り記号を追加して、新しい文字列を返します。
Element が String の場合使用できます。
func joined(separator: String) -> String
シーケンスの要素を連結し、各要素の間に与えられた区切り記号を追加して、新しい文字列を返します。
Element が StringProtocol に準拠している場合に使用できます。
配列の比較
static func == (Array<Element>, Array<Element>) -> Bool
2 つの配列に同じ要素が同じ順序で含まれているかどうかを示すブール値を返します。
Element が Equatable に準拠している場合使用可能です。
static func != (Array<Element>, Array<Element>) -> Bool
2 つの値が等しくないかどうかを示すブール値を返します。
Element が Equatable に準拠している場合使用可能です。
func elementsEqual<OtherSequence>(OtherSequence) -> Bool
このシーケンスと別のシーケンスに同じ要素が同じ順序で含まれているかどうかを示すブール値を返します。
Element が Equatable に準拠している場合使用可能です。
与えられた述語を等価性テストとして使用して、このシーケンスと他のシーケンスが同じ順序で等価な要素を含むかどうかを示すブール値を返します。
func starts<PossiblePrefix>(with: PossiblePrefix) -> Bool
シーケンスの最初の要素が別のシーケンス内の要素と同じかどうかを示すブール値を返します。
Element が Equatable に準拠している場合使用可能です。
与えられた述語を等価性テストとしてを使用して、シーケンスの最初の要素が別のシーケンス内の要素と等しいかどうかを示すブール値を返します。
func lexicographicallyPrecedes<OtherSequence>(OtherSequence) -> Bool
要素を比較するために小なり演算子 (<) を使用して、シーケンスが辞書順で別のシーケンスの前にあるかどうかを示すブール値を返します。
Element が Comparable に準拠している場合使用可能です。
要素を比較するため与えられた述語を使用して、シーケンスが辞書順で別のシーケンスの前にあるかどうかを示すブール値を返します。
インデックスの操作
空でない配列内の最初の要素の位置。
配列の "最後を過ぎた" 位置、つまり最後の有効なサブスクリプト引数より 1 つ大きい位置。
func index(after: Int) -> Int
与えられたインデックスの直後の位置を返します。
func formIndex(after: inout Int)
与えられたインデックスをその後継者に置き換えます。
func index(before: Int) -> Int
与えられたインデックスの直前の位置を返します。
func formIndex(before: inout Int)
与えられたインデックスをその前にあったインデックスに置き換えます。
func index(Int, offsetBy: Int) -> Int
与えられたインデックスから指定された距離にあるインデックスを返します。
func formIndex(inout Int, offsetBy: Int)
与えられたインデックスを指定された距離だけオフセットします。
func index(Int, offsetBy: Int, limitedBy: Int) -> Int?
与えられたインデックスから指定された距離にあるインデックスを返します。ただし、その距離が与えられた制限のインデックスを超えている場合は除きます。
func formIndex(inout Int, offsetBy: Int, limitedBy: Int) -> Bool
与えられたインデックスを指定された距離だけオフセットするか、または与えられた制限のインデックスと等しくなるようにします。
func distance(from: Int, to: Int) -> Int
2 つのインデックス間の距離を返します。
昇順で、コレクションをサブスクリプトするのに有効なインデックス。
基礎となる記憶領域へのアクセス
func withUnsafeBufferPointer<R>((UnsafeBufferPointer<Element>) -> R) -> R
配列の連続した記憶領域へのポインタでクロージャを呼び出します。
与えられたクロージャを、配列の可変の連続した記憶領域へのポインタで呼び出します。
func withUnsafeBytes<R>((UnsafeRawBufferPointer) -> R) -> R
与えられたクロージャを、配列の連続した記憶領域の基礎となるバイトへのポインタで呼び出します。
func withUnsafeMutableBytes<R>((UnsafeMutableRawBufferPointer) -> R) -> R
与えられたクロージャを、配列の可変の連続した記憶領域の基礎となるバイトへのポインタで呼び出します。
func withContiguousStorageIfAvailable<R>((UnsafeBufferPointer<Element>) -> R) -> R?
コード化と復号化
この配列の要素を、キーのないコンテナ内の与えられたエンコーダにコード化します。
Element が Encodable に準拠している場合利用可能。
与えられた復号器から復号して新しい配列を作成します。
Element が Decodable に準拠している時利用可能。
配列 (Array) の記述
配列とその要素のテキスト表現。
デバッグに適した、配列とその要素のテキスト表現。
配列を反映するミラー。
与えられたハッシャーにそれらを供給することによってこの値の本質的な要素をハッシュします。
Element が Hashable に準拠している場合利用可能です。
関連した配列型
struct ContiguousArray
連続して格納されている配列。
struct ArraySlice
Array、ContiguousArray、 または ArraySlice インスタンスのスライス。
参照型
参照セマンティクスまたは Foundation 固有の動作が必要な場合は、ブリッジされた参照型を使用してください。
静的で順序付けられたコレクションを表すオブジェクトであり、参照セマンティクスが必要な場合は Array 定数の代わりに使用します。
class NSMutableArray
動的で順序付けられたコレクションを表すオブジェクトであり、参照セマンティクスが必要な場合は Array 変数の代わりに使用します。
サポートする型
配列のインデックス型、Int。
配列のサブスクリプト付けに有効なインデックスを昇順で表す型。
配列の要素を繰り返し処理できる型です。
配列間の変換と ML 型の作成
init(MLDataColumn<Element>)
機械学習データテーブルの列から配列を作成します。
Element が MLDataValueConvertible に準拠している場合利用可能です。
機械学習データテーブル内の入力されていない列から配列を作成します。
Element が MLDataValue の場合利用可能です。
機械学習データ値から配列を作成します。
Element が MLDataValueConvertible に準拠している場合利用可能です。
配列の機械学習データ値表現。
Element が MLDataValueConvertible に準拠している場合利用可能です。
static var dataValueType: MLDataValue.ValueType
配列への変換先となる機械学習データ値の種類。
Element が MLDataValueConvertible に準拠している場合利用可能です。
あまり使用されない機能
init(arrayLiteral: Element...)
与えられた配列リテラルから配列を作成します。
イニシャライザ
init(fromSplitComplex: DSPDoubleSplitComplex, scale: Double, count: Int)
Element が Double の場合利用可能です。
init(fromSplitComplex: DSPSplitComplex, scale: Float, count: Int)
Element が Float の場合利用可能です。
指定された容量で配列を作成してから、配列の初期化されていないメモリをカバーするバッファで与えられたクロージャを呼び出します。
  Beta  
インスタンスプロパティ
var regions: CollectionOfOne<Array<UInt8>>
Element が UInt8 の場合利用可能です。
インスタンスメソッド
func applying(CollectionDifference<Element>) -> Array<Element>?
与えられた違いをこのコレクションに適用します。
  Beta  
func difference<C>(from: C) -> CollectionDifference<Element>
与えられたコレクションからこのコレクションの順序に並べた要素を作成するために必要な違いを返します。
Element が Equatable に準拠している場合利用可能です。
  Beta  
与えられた述語を等価性テストとして使用して、与えられたコレクションからこのコレクションの順序に並べた要素を作成するために必要な違いを返します。
  Beta  
関連
以下に準拠
AccelerateMutableBuffer
CKRecordValueProtocol
Element が CKRecordValueProtocol に準拠している場合に準拠する。
ContiguousBytes
Element が UInt8 の時準拠する。
CustomDebugStringConvertible
CustomStringConvertible
CVarArg
DataProtocol
Element が UInt8 の時準拠する。
Element が Decodable に準拠している場合に準拠する。
Element が Encodable に準拠している場合に準拠する。
Element が Equatable に準拠している場合に準拠する。
ExpressibleByArrayLiteral
Element が Hashable に準拠している場合に準拠する。
MLDataValueConvertible
Element が MLDataValueConvertible に準拠している場合準拠する。
MutableDataProtocol
Element が UInt8 の時準拠する。
RandomAccessCollection
RangeReplaceableCollection
以下も見よ
標準ライブラリ
符号付き整数値型。
倍精度の浮動小数点値型。
文字のコレクションである Unicode 文字列値。
その要素がキー値のペアであるコレクション。
複雑な問題を解決し、パフォーマンスの高い、読みやすいコードを書きます。
このドキュメントには、開発中の API またはテクノロジに関する予備的な情報が含まれています。この情報は変更される可能性があり、このドキュメントに従って実装されるソフトウェアは、最終的なオペレーティングシステムソフトウェアでテストする必要があります。
アップルの Beta 版ソフトウェアの使い方についてもっと知る >
トップへ
トップへ
トップへ
トップへ
トップへ