プロトコル
SetAlgebra
数学的なセットの操作を提供する型。
iOS 8.0+ iPadOS 8.0+ Mac Catalyst 13.0+
macOS 10.10+
tvOS 9.0+ visionOS 1.0+ watchOS 2.0+
概観
効率的なメンバーシップテストや、intersection(積)、union(和)、subtraction(減算) などの数学的なセットの操作が必要な場合は、SetAlgebra プロトコルに準拠した型を使用して下さい。標準ライブラリでは、任意のハッシュ可能な型の要素で Set 型を使用したり、OptionSet プロトコルを使用して SetAlgebra 準拠のビットマスクを簡単に作成したりできます。詳細については、これらの型を参照してください。
注意:
通常のセット型とは異なり、OptionSet の Element 型は OptionSet 型自体と同一です。SetAlgebra プロトコルは、両方の種類のセットに対応するように特別に設計されています。
SetAlgebraプロトコルに準拠
SetAlgebra プロトコルに準拠するカスタム型を実装する場合は、必要なイニシャライザとメソッドを実装しなければなりません。継承されたメソッドが適切に機能するには、準拠する型が以下の公理を満たさなければなりません。S が SetAlgebra プロトコルに準拠するカスタム型であり、x と y が S のインスタンスであり、e が S.Element 型 (セットが保持する型) であると仮定します。
- S() == []
- x.intersection(x) == x
- x.intersection([]) == []
- x.union(x) == x
- x.union([]) == x
- x.contains(e) implies x.union(y).contains(e)
- x.union(y).contains(e) implies x.contains(e) || y.contains(e)
- x.contains(e) && y.contains(e) if and only if x.intersection(y).contains(e)
- x.isSubset(of: y) implies x.union(y) == y
- x.isSuperset(of: y) implies x.union(y) == x
- x.isSubset(of: y) if and only if y.isSuperset(of: x)
- x.isStrictSuperset(of: y) if and only if x.isSuperset(of: y) && x != y
- x.isStrictSubset(of: y) if and only if x.isSubset(of: y) && x != y
トピックス
セットの作成
init()
空のセットを作成します。
必須 デフォルトの実装が提供されます。
メンバーシップのテスト
func contains(Self.Element) -> Bool
与えられた要素がセット内に存在するかどうかを示すブール値を返します。
必須 デフォルトの実装が提供されます。
associatedtype Element
準拠する型が包含するテストを提供する型。
必須
@@@@@@@@@@@@@@
12/19:ここまで
@@@@@@@@@@@@@@
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ