Required Instance Methodswift 6.0.1Swift
index(_:offsetBy:limitedBy:)
Returns an index that is the specified distance from the given index, unless that distance is beyond a given limiting index.
func index(_ i: Self.Index, offsetBy distance: Int, limitedBy limit: Self.Index) -> Self.Index?
Parameters
- i
A valid index of the collection.
- distance
The distance to offset
i
.distance
must not be negative unless the collection conforms to theBidirectionalCollection
protocol.- limit
A valid index of the collection to use as a limit. If
distance > 0
, a limit that is less thani
has no effect. Likewise, ifdistance < 0
, a limit that is greater thani
has no effect.
Returns
An index offset by distance
from the index i
, unless that index would be beyond limit
in the direction of movement. In that case, the method returns nil
.
The following example obtains an index advanced four positions from a string’s starting index and then prints the character at that position. The operation doesn’t require going beyond the limiting s.endIndex
value, so it succeeds.
let s = "Swift"
if let i = s.index(s.startIndex, offsetBy: 4, limitedBy: s.endIndex) {
print(s[i])
}
// Prints "t"
The next example attempts to retrieve an index six positions from s.startIndex
but fails, because that distance is beyond the index passed as limit
.
let j = s.index(s.startIndex, offsetBy: 6, limitedBy: s.endIndex)
print(j)
// Prints "nil"
The value passed as distance
must not offset i
beyond the bounds of the collection, unless the index passed as limit
prevents offsetting beyond those bounds.
Other requirements
View members
Hide members
This section is hidden by default because it contains too many (17) members.
Type members
associatedtype Element
associatedtype Index
A type that represents a position in the collection.
associatedtype Indices
A type that represents the indices that are valid for subscripting the collection, in ascending order.
associatedtype Iterator
A type that provides the collection’s iteration interface and encapsulates its iteration state.
associatedtype SubSequence
A collection representing a contiguous subrange of this collection’s elements. The subsequence shares indices with the original collection.
Instance members
var count: Int
The number of elements in the collection.
var endIndex: Self.Index
The collection’s “past the end” position—that is, the position one greater than the last valid subscript argument.
var indices: Self.Indices
The indices that are valid for subscripting the collection, in ascending order.
var isEmpty: Bool
A Boolean value indicating whether the collection is empty.
var startIndex: Self.Index
The position of the first element in a nonempty collection.
subscript(Range<Self.Index>
) -> Self.SubSequence Accesses a contiguous subrange of the collection’s elements.
subscript(Self.Index
) -> Self.Element Accesses the element at the specified position.
func distance(from: Self.Index, to: Self.Index
) -> Int Returns the distance between two indices.
func formIndex(after: inout Self.Index
) Replaces the given index with its successor.
func index(Self.Index, offsetBy: Int
) -> Self.Index Returns an index that is the specified distance from the given index.
func index(after: Self.Index
) -> Self.Index Returns the position immediately after the given index.
func makeIterator(
) -> Self.Iterator Returns an iterator over the elements of the collection.
Citizens in Swift
Default implementations
func index(Self.Index, offsetBy: Int, limitedBy: Self.Index
) -> Self.Index? func index(Self.Index, offsetBy: Int, limitedBy: Self.Index
) -> Self.Index? Returns an index that is the specified distance from the given index, unless that distance is beyond a given limiting index.
func index(Self.Index, offsetBy: Int, limitedBy: Self.Index
) -> Self.Index? Returns an index that is the specified distance from the given index, unless that distance is beyond a given limiting index.