2015-06-01 13 views

Odpowiedz

46

GeneratorType (IteratorProtocol in Swift 3):Generators jest coś, co może dać element next jakiejś kolejności, jeśli nie ma elementu zwraca nil. Generators enkapsuluje stan iteracji i interfejsy dla iteracji po sekwencji.

Generator działa poprzez zapewnienie jednej metody, a mianowicie - next(), która po prostu zwraca następną wartość z podstawowej sequence.

następujących klas Przyjęcie GeneratorType Protokół:

DictionaryGenerator, EmptyGenerator, bardziej here.


SequenceType (Sequence in Swift 3):Sequence stanowią szereg wartości. Sequence to typ, który można iterować za pomocą pętli for...in.

Zasadniczo sekwencja jest fabryką generatorów; coś, co wie, jak tworzyć generatory dla sekwencji.

następujących klas Przyjęcie SequenceType Protokół:

NSArray, NSDictionary, NSSet i more.


CollectionType (Collection in Swift 3):Collection jest SequenceType, które można uzyskać poprzez dolny i określa startIndex i endIndex. Collection jest krokiem wykraczającym poza sekwencję; poszczególne elementy kolekcji można uzyskać wielokrotnie.

CollectionType dziedziczy z SequenceType

następujących klas Przyjęcie CollectionType Protokół:

Array, Dictionary, Set, Range i more.


Formularz więcej informacji można zobaczyć this, this i this

+0

Proszę mnie poprawić jeśli się mylę.** 1) ** 'Array',' Dictionary' i 'Set' wszyscy są zgodne z' collectionType' (który sam implementuje SequenceType (który ma funkcję o nazwie 'next', która zwraca coś, co implementuje' GeneratorType'))? ** 2) ** Czy możesz zaktualizować swoją odpowiedź, aby uwzględnić niektóre typy Swift Foundation, które są zgodne z każdym z 3 wymienionych protokołów? – Honey

+0

Dzięki. Czy nie możesz również zasubskrybować lub uzyskać pierwszy i ostatni indeks NSArray lub NSDictionary? – Honey

Powiązane problemy