RangeReplaceableCollection

protocol RangeReplaceableCollection : Collection where Self.SubSequence : RangeReplaceableCollection
  • Creates a new collection of a given size where for each position of the collection the value will be the result of a call of the given expression.

    let values = Array(expression: "Value", count: 3)
    print(values)
    // Prints "["Value", "Value", "Value"]"
    

    Declaration

    Swift

    init(expression: @autoclosure () throws -> Element, count: Int) rethrows

    Parameters

    expression

    The expression to execute for each position of the collection.

    count

    The count of the collection.

  • SwifterSwift: Returns a new rotated collection by the given places.

    [1, 2, 3, 4].rotated(by: 1) -> [4,1,2,3]
    [1, 2, 3, 4].rotated(by: 3) -> [2,3,4,1]
    [1, 2, 3, 4].rotated(by: -1) -> [2,3,4,1]
    

    Declaration

    Swift

    func rotated(by places: Int) -> Self

    Parameters

    places

    Number of places that the array be rotated. If the value is positive the end becomes the start, if it negative it’s that start becom the end.

    Return Value

     The new rotated collection.

  • SwifterSwift: Rotate the collection by the given places.

    [1, 2, 3, 4].rotate(by: 1) -> [4,1,2,3]
    [1, 2, 3, 4].rotate(by: 3) -> [2,3,4,1]
    [1, 2, 3, 4].rotated(by: -1) -> [2,3,4,1]
    

    Declaration

    Swift

    @discardableResult
    mutating func rotate(by places: Int) -> Self

    Parameters

    places

    The number of places that the array should be rotated. If the value is positive the end becomes the start, if it negative it’s that start become the end.

    Return Value

    self after rotating.

  • SwifterSwift: Removes the first element of the collection which satisfies the given predicate.

       [1, 2, 2, 3, 4, 2, 5].removeFirst { $0 % 2 == 0 } -> [1, 2, 3, 4, 2, 5]
       ["h", "e", "l", "l", "o"].removeFirst { $0 == "e" } -> ["h", "l", "l", "o"]
    

    Declaration

    Swift

    @discardableResult
    mutating func removeFirst(where predicate: (Element) throws -> Bool) rethrows -> Element?

    Parameters

    predicate

    A closure that takes an element as its argument and returns a Boolean value that indicates whether the passed element represents a match.

    Return Value

    The first element for which predicate returns true, after removing it. If no elements in the collection satisfy the given predicate, returns nil.

  • SwifterSwift: Remove a random value from the collection.

    Declaration

    Swift

    @discardableResult
    mutating func removeRandomElement() -> Element?
  • SwifterSwift: Keep elements of Array while condition is true.

       [0, 2, 4, 7].keep(while: { $0 % 2 == 0 }) -> [0, 2, 4]
    

    Throws

    provided condition exception.

    Declaration

    Swift

    @discardableResult
    mutating func keep(while condition: (Element) throws -> Bool) rethrows -> Self

    Parameters

    condition

    condition to evaluate each element against.

    Return Value

    self after applying provided condition.

  • SwifterSwift: Take element of Array while condition is true.

       [0, 2, 4, 7, 6, 8].take( where: {$0 % 2 == 0}) -> [0, 2, 4]
    

    Declaration

    Swift

    func take(while condition: (Element) throws -> Bool) rethrows -> Self

    Parameters

    condition

    condition to evaluate each element against.

    Return Value

    All elements up until condition evaluates to false.

  • SwifterSwift: Skip elements of Array while condition is true.

       [0, 2, 4, 7, 6, 8].skip( where: {$0 % 2 == 0}) -> [6, 8]
    

    Declaration

    Swift

    func skip(while condition: (Element) throws -> Bool) rethrows -> Self

    Parameters

    condition

    condition to evaluate each element against.

    Return Value

    All elements after the condition evaluates to false.