Instance Method

advanced(by:)

Returns a value that is offset the specified distance from this value.

Declaration

func advanced(by n: Int) -> UnsafeMutableRawPointer

Parameters

n

The distance to advance this value.

Return Value

A value that is offset from this value by n.

Discussion

Use the advanced(by:) method in generic code to offset a value by a specified distance. If you’re working directly with numeric values, use the addition operator (+) instead of this method.

func addOne<T: Strideable>(to x: T) -> T
    where T.Stride : ExpressibleByIntegerLiteral
{
    return x.advanced(by: 1)
}

let x = addOne(to: 5)
// x == 6
let y = addOne(to: 3.5)
// y = 4.5

If this type’s Stride type conforms to BinaryInteger, then for a value x, a distance n, and a value y = x.advanced(by: n), x.distance(to: y) == n. Using this method with types that have a noninteger Stride may result in an approximation.

Complexity: O(1)

Relationships

From Protocol