文書   >   Swift   >   Swift 標準ライブラリ   >   Collections   >   Sequence and Collection Protocols   >   MutableCollection
プロトコル
MutableCollection
サブスクリプト割り当てをサポートするコレクション。
宣言
概観
MutableCollection に準拠するコレクションは、それらの要素の値を変更する機能を取得します。この例は、学生の配列内の名前の 1 つを変更する方法を示します。
var students = ["Ben", "Ivy", "Jordell", "Maxime"]
if let i = students.firstIndex(of: "Maxime") {
students[i] = "Max"
}
print(students)
// Prints "["Ben", "Ivy", "Jordell", "Max"]"
個々の要素の値を変更するだけでなく、変更可能なコレクション内の要素のスライスの値を変更することもできます。たとえば、サブスクリプトされた部分シーケンスに対して、変更可能な sort() メソッドを呼び出して、変更可能なコレクションの 一部 を並べ替えることができます。整数の配列の前半を並べ替える例を次に示します。
var numbers = [15, 40, 10, 30, 60, 25, 5, 100]
numbers[0..<4].sort()
print(numbers)
// Prints "[10, 15, 30, 40, 60, 25, 5, 100]"
MutableCollection プロトコルでは、コレクションの要素の値の変更は許されていますが、コレクション自体の長さは変更できません。要素の追加または削除が必要な操作については、代わりに RangeReplaceableCollection プロトコルを参照してください。
MutableCollection プロトコルへの準拠
独自のカスタムコレクションに MutableCollection プロトコルへの準拠を追加するには、型のサブスクリプトをアップグレードして、読み取りと書き込みの両方のアクセスをサポートして下さい。
その後、MutableCollection インスタンスのサブスクリプトに保管された値は、同じ位置でアクセス可能でなければなりません。つまり、変更可能なコレクションインスタンス a、インデックス i、および値 x の場合、以下のコードサンプルの 2 つの割り当てセットは同等でなければなりません。
a[i] = x
let y = a[i]
// Must be equivalent to:
a[i] = x
let y = x
トピックス
関連した型
インスタンスメソッド
func partition(by: (Self.Element) -> Bool) -> Self.Index
与えられた predicate (述語) と一致するすべての要素が、一致しないすべての要素の後にくるように、コレクションの要素を並べ替えます。
必須。 デフォルトの実装が提供されます。
コレクションの要素をその場で逆にします。
コレクションをその場でシャッフルします。
func shuffle<T>(using: inout T)
与えられたジェネレータを乱数のソースとして使用して、コレクションをその場でシャッフルします。
コレクションをその場で並べ替えます。
Self が RandomAccessCollection に準拠し、Element が Comparable に準拠している場合に利用可能です。
func sort(by: (Self.Element, Self.Element) -> Bool)
与えられた predicate (述語) を要素間の比較として使用して、コレクションをその場で並べ替えます。
func swapAt(Self.Index, Self.Index)
コレクションの指定されたインデックスでの値を交換します。
必須。 デフォルトの実装が提供されます。
サブスクリプト
subscript(Self.Index) -> Self.Element
指定された位置にある要素にアクセスします。
必須。 デフォルトの実装が提供されます。
subscript(Range<Self.Index>) -> Self.SubSequence
コレクションの要素の連続した部分範囲にアクセスします。
必須。
関連
以下からの継承
準拠している型
ArraySlice
CollectionOfOne
ContiguousArray
Data
EmptyCollection
IndexPath
Base が MutableCollection に準拠している場合準拠します。
UnsafeMutableAudioBufferListPointer
UnsafeMutableMIDIPacketPointer
UnsafeMutableRawBufferPointer
以下も見よ
コレクションの変わりやすさ
protocol RangeReplaceableCollection
任意の部分範囲の要素を別のコレクションの要素に置き換えることをサポートするコレクション。