Выборка

public struct Sampling<Base: Collection, Selection: Collection>
where Selection.Element == Base.Index
extension Sampling: SamplingProtocol
extension Sampling: Collection
extension Sampling: BidirectionalCollection
  where Selection: BidirectionalCollection
extension Sampling: RandomAccessCollection
  where Selection: RandomAccessCollection

Ленивый выбор элементов в заданном порядке из некоторой базовой коллекции.

  • Создает экземпляр из base и selection .

    Декларация

    public init(base: Base, selection: Selection)
  • Декларация

    public typealias Element = Base.Element
  • Тип, экземпляры которого представляют позиции в self .

    Декларация

    public typealias Index = Selection.Index
  • Положение первого элемента.

    Декларация

    public var startIndex: Index { get }
  • Позиция, следующая за последним элементом.

    Декларация

    public var endIndex: Index { get }
  • Возвращает элемент по адресу i .

    Декларация

    public subscript(i: Index) -> Element { get }
  • Возвращает позицию после i .

    Декларация

    public func index(after i: Index) -> Index
  • Возвращает количество шагов вперед, необходимое для преобразования start в end .

    Отрицательный результат означает, что end < start .

    Декларация

    public func distance(from start: Index, to end: Index) -> Int
  • Возвращает позицию n мест из i .

    Декларация

    public func index(_ i: Index, offsetBy n: Int) -> Index
  • Возвращает i смещение по distance , если только это не требует прохождения limit , и в этом случае возвращается nil .

    Декларация

    public func index(
      _ i: Index, offsetBy distance: Int, limitedBy limit: Index
    ) -> Index?
Доступно, если `Выбор`: `BidirectionCollection`