文書   >   Swift 標準ライブラリ   >   Collections   >   Supporting Types   >   AnyIterator   >   init(_:)
汎用イニシャライザ
init(_:)
基本の繰り返し因子を包み込みますが、その型は基本の繰り返し因子の要素型のみに依存する繰り返し因子を作成します。
宣言
init<I>(_ base: I) where Element == I.Element, I : IteratorProtocol
パラメータ
base | 型消去すべき繰り返し因子。 |
議論
AnyIterator を使用すると、より複雑な繰り返し因子の型署名を隠すことができます。たとえば、以下の例の digits() 関数は、CountableRange<Int> インスタンスの要素を文字列に遅延してマッピングするコレクション上の繰り返し因子を作成します。digits() 関数は、コレクションの実装をカプセル化する型の繰り返し因子を返す代わりに、まず繰り返し因子を AnyIterator インスタンスに包み込みます。
func digits() -> AnyIterator<String> { let lazyStrings = (0..<10).lazy.map { String($0) } let iterator: LazyMapIterator<IndexingIterator<CountableRange<Int>>, String> = lazyStrings.makeIterator() return AnyIterator(iterator) }
関連
汎用の制約
Element == I.Element
I : IteratorProtocol