Collection

public extension Collection
public extension Collection where Index == Int
public extension Collection where Element == IntegerLiteralType, Index == Int
public extension Collection where Element: FloatingPoint
  • SwifterSwift: Performs each closure for each element of collection in parallel.

       array.forEachInParallel { item in
           print(item)
       }
    

    Declaration

    Swift

    func forEachInParallel(_ each: (Self.Element) -> Void)

    Parameters

    each

    closure to run for each element.

  • SwifterSwift: Safe protects the array from out of bounds by use of optional.

       let arr = [1, 2, 3, 4, 5]
       arr[safe: 1] -> 2
       arr[safe: 10] -> nil
    

    Declaration

    Swift

    subscript(safe index: Index) -> Element? { get }

    Parameters

    index

    index of element to access element.

  • SwifterSwift: Returns an array of slices of length “size” from the array. If array can’t be split evenly, the final slice will be the remaining elements.

    [0, 2, 4, 7].group(by: 2) -> [[0, 2], [4, 7]]
    [0, 2, 4, 7, 6].group(by: 2) -> [[0, 2], [4, 7], [6]]
    

    Declaration

    Swift

    func group(by size: Int) -> [[Element]]?

    Parameters

    size

    The size of the slices to be returned.

    Return Value

    grouped self.

Available where Index == Int

  • SwifterSwift: Get all indices where condition is met.

    [1, 7, 1, 2, 4, 1, 8].indices(where: { $0 == 1 }) -> [0, 2, 5]
    

    Declaration

    Swift

    func indices(where condition: (Element) throws -> Bool) rethrows -> [Index]?

    Parameters

    condition

    condition to evaluate each element against.

    Return Value

    all indices where the specified condition evaluates to true. (optional)

  • SwifterSwift: Calls the given closure with an array of size of the parameter slice.

    [0, 2, 4, 7].forEach(slice: 2) { print($0) } -> // print: [0, 2], [4, 7]
    [0, 2, 4, 7, 6].forEach(slice: 2) { print($0) } -> // print: [0, 2], [4, 7], [6]
    

    Declaration

    Swift

    func forEach(slice: Int, body: ([Element]) throws -> Void) rethrows

    Parameters

    slice

    size of array in each interation.

    body

    a closure that takes an array of slice size as a parameter.

Available where Element == IntegerLiteralType, Index == Int

  • SwifterSwift: Average of all elements in array.

    Declaration

    Swift

    func average() -> Double

    Return Value

    the average of the array’s elements.

Available where Element: FloatingPoint

  • SwifterSwift: Average of all elements in array.

       [1.2, 2.3, 4.5, 3.4, 4.5].average() = 3.18
    

    Declaration

    Swift

    func average() -> Element

    Return Value

    average of the array’s elements.