2017-04-17 7 views
0

いくつかの調査を行った後、私は具体的な確認を見つけることができませんでしたが、シーケンスプロトコルのジェネレーター関連タイプがイテレーターに名前変更されたようです。これは正しいです?イテレータープロトコル対ジェネレーター対イテレーター速報

プロトコルGeneratorTypeまたは関連タイプジェネレータについては、すばやいAPIリファレンスでは何も見つかりません。私は人々がブログでそれについて書いているのを見ているだけです。

私の質問はジェネレータとイテレータが正確に同じ概念をswiftで参照していることですか?

+1

。はい。 – Hamish

+2

多少の関連性:[NSFastEnumeration in Swift 3](http://stackoverflow.com/q/37829953/2976878)。 Swift 3の[進化の提案](https://github.com/apple/swift-evolution/blob/master/proposals/0006-apply-api-guidelines-to-the-standard-library.md)も参照してください。標準ライブラリの改名。 – Hamish

+0

ハミッシュに感謝しています。そのような感覚を持っていて、具体的な確認を見つけることはできませんでした。安心してくれてありがとう。その情報を回答の形で投稿すれば、私はそれを受け入れることができます。 –

答えて

2

ジェネレータとイテレータはSwiftとまったく同じ概念を指していますか?

はい。

として標準ライブラリのスウィフト3 'renamification' のthe evolution proposalで述べている:

  • ストリッププロトコル名からType接尾辞が。いくつかの特殊なケースでは、これは接尾辞Protocolを追加して、プライマリ[...]であるタイプ名の邪魔にならないことを意味します。

  • ジェネレータの概念は、すべてのAPIでイテレータに変更されています。結果として

GeneratorTypeプロトコルはIteratorProtocolに名前が変更されました。

SequenceTypeプロトコルはSequenceに名称​​変更し、このように見てから行ってきました。このように見ているに

public protocol SequenceType { 

    associatedtype Generator : GeneratorType 

    // ... 
    func generate() -> Generator 
    // ... 
} 

:一言で

public protocol Sequence { 

    associatedtype Iterator : IteratorProtocol 

    // ... 
    func makeIterator() -> Iterator 
    // ... 
} 
関連する問題