Что такое .successor () в swift?

Может кто-нибудь объяснить, что такое какой-то Var.successor ()? Документация Apple гласит: «Возвращает следующее последовательное значение после self ». Я не понимаю его смысла реализации.

Благодарю.

Вместо добавления 1 мы можем вызвать successor () для индекса.

Например, это:

 func naturalIndexOfItem(item: Item) -> Int? { if let index = indexOfItem(item) { return index + 1 } else { return nil } } 

Является равным этому:

 func naturalIndexOfItem(item: Item) -> Int? { if let index = indexOfItem(item) { return index.successor() } else { return nil } } 

Метод successor() возвращает следующее значение после текущего (если есть, если текущее значение равно 0, то вызов successor() будет возвращать 1 и так далее)

Типичная реализация successor () будет выглядеть так:

 class ForWardIndexDemo: ForwardIndex { private var _myIndex = 0 init(index: Int) { _myIndex = index; } func successor() -> ForWardIndexDemo { return ForWardIndexDemo(index:_myIndex++) } } 

Связанный с коллекцией тип IndexType указывает, какой тип используется для индексации коллекции. Любой тип, который реализует ForwardIndex, может использоваться как IndexType.

ForwardIndex – это индекс, который может быть только увеличен, например, индекс вперед 0 может быть увеличен до 1,2,3 и т. Д. … Этот протокол внутренне наследуется от Equatable и _Incrementable протоколов. Чтобы придерживаться метода ForwardIndex protocol () -> Self, и должны быть реализованы эквивалентные протоколы.

Подробнее об этом читайте здесь.

  • Swift: как закрыть контроллер просмотра и контроллер навигации, запущенный с AppDelegate
  • Как отправить значения родительскому контроллеру представления в Swift
  • Ошибка строки состояния входа в UIViewController
  • Программно прокрутите UIScrollView до вершины дочернего UIView (subview) в Swift
  • Как я могу обеспечить, чтобы мой контроллер подробного представления всегда был встроен в UINavigationController?
  • Facebook Graph Request возвращает имя, но не адрес электронной почты
  • iOS 9.3: Произошла ошибка SSL, и безопасное соединение с сервером невозможно сделать
  • Как реализовать NFC в приложении для iPhone?
  • Подключите платформу Objective C к Swift iOS 8 (Parse framework)
  • Я хочу переключить скруббер времени на 15 минут
  • Как обновить информацию о пользователе Parse в Swift?
  • Interesting Posts
    Давайте будем гением компьютера.