associatedtype Indices
associatedtype SubSequence
Availability
Technology
protocol BidirectionalCollection where Self.Indices
: BidirectionalCollection
, Self.SubSequence
: BidirectionalCollection
Bidirectional collections offer traversal backward from any valid index, not including a collection’s start
. Bidirectional collections can therefore offer additional operations, such as a last
property that provides efficient access to the last element and a reversed()
method that presents the elements in reverse order. In addition, bidirectional collections have more efficient implementations of some sequence and collection methods, such as suffix(_:)
.
二方向性のコレクションは、あらゆる有効な、しかしコレクションのstart
を含まないインデックスから後方へ辿っていくことを提案します。二方向性のコレクションは、従って追加の演算を提案します、例えば最後の要素への手際のよいアクセスを提供するlast
プロパティ、そして要素を逆順で提示するreversed()
メソッドなど。さらに加えて、二方向性のコレクションはいくらかのシーケンスおよびコレクションメソッドのもっと手際の良い実装を持ちます、例えばsuffix(_:)
など。
To add Bidirectional
conformance to your custom types, implement the index(before:)
method in addition to the requirements of the Collection
protocol.
Bidirectional
準拠をあなたのあつらえの型に加えるには、index(before:)
メソッドを、Collection
プロトコルの要件に加えて実装してください。
Indices that are moved forward and backward in a bidirectional collection move by the same amount in each direction. That is, for any index i
into a bidirectional collection c
:
二方向性のコレクションにおいて前方および後方に移動されるインデックス値は、各方向で同じ量だけ移動します。すなわち、二方向性のコレクションc
に対する何らかのインデックスi
は:
If i >= c
, c
.
i >= c
ならば、c
。
If i > c
c
.
i > c
ならばc
。
associatedtype Indices
associatedtype SubSequence
var indices: Self.Indices
var last: Self.Element?
func difference<C>(from: C) -> CollectionDifference<Self.Element>
Element
conforms to Equatable
.
Element
がEquatable
に準拠する時に利用可能です。
func difference<C>(from: C, by: (C.Element, Self.Element) -> Bool) -> CollectionDifference<Self.Element>
func distance(from: Self.Index, to: Self.Index) -> Int
func dropLast (Int) -> Self.SubSequence
func formIndex (after: inout Self.Index)
func formIndex (before: inout Self.Index)
func index(Self.Index, offsetBy : Int) -> Self.Index
func index(Self.Index, offsetBy : Int, limitedBy : Self.Index) -> Self.Index?
func index(after: Self.Index) -> Self.Index
func index(before: Self.Index) -> Self.Index
func joined(separator: String) -> String
Element
is String
.
Element
がString
である時に利用可能です。
func last(where: (Self.Element) -> Bool) -> Self.Element?
func lastIndex (of: Self.Element) -> Self.Index?
Element
conforms to Equatable
.
Element
がEquatable
に準拠する時に利用可能です。
func lastIndex (where: (Self.Element) -> Bool) -> Self.Index?
func popLast () -> Self.Element?
Self
is
SubSequence
.
Self
が
SubSequence
である時に利用可能です。
func removeLast () -> Self.Element
Self
is
SubSequence
.
Self
が
SubSequence
である時に利用可能です。
func removeLast (Int)
Self
is
SubSequence
.
Self
が
SubSequence
である時に利用可能です。
func reversed() -> ReversedCollection<Self>
func suffix(Int) -> Self.SubSequence
subscript(Range<Self.Index>) -> Self.SubSequence
AnyBidirectionalCollection
AttributedString.CharacterView
AttributedString.Runs
AttributedString.Runs.AttributesSlice1
AttributedString.Runs.AttributesSlice2
AttributedString.Runs.AttributesSlice3
AttributedString.Runs.AttributesSlice4
AttributedString.Runs.AttributesSlice5
AttributedString.UnicodeScalarView
Binding
Value
conforms to BidirectionalCollection
and MutableCollection
.
Value
がBidirectionalCollection
とMutableCollection
に準拠する時に準拠します。
DataFrame.Rows
DefaultIndices
Elements
conforms to BidirectionalCollection
.
Elements
がBidirectionalCollection
に準拠する時に準拠します。
DiscontiguousColumnSlice
ApplicationMusicPlayer.Queue.Entries
FilePath.ComponentView
IndexSet
IndexSet.RangeView
JointTransforms
ReversedCollection
Slice
Base
conforms to BidirectionalCollection
.
Base
がBidirectionalCollection
に準拠する時に準拠します。
String
String.UTF16View
String.UTF8View
String.UnicodeScalarView
Substring.UTF16View
Substring.UTF8View
Substring.UnicodeScalarView
protocol RandomAccessCollection