Iterator は、コレクションを走査するときにデータをより便利に操作するのに役立つ一般的なプログラミング パターンです。 Go 言語は、シンプルで効率的な設計概念を提唱し、イテレータの共通プログラミング パターンもサポートする新しいプログラミング言語です。この記事ではGo言語を使ってイテレータを実装する方法を紹介します。
まず、イテレータとは何かを明確にする必要があります。イテレータは、コレクションを走査し、コレクション内の要素にアクセスできるオブジェクトです。通常、イテレータには 2 つの基本操作が含まれます:
Go 言語では、以下に示すように、インターフェイスを使用してイテレータを定義できます。上のコードでは、HasNext() と Next() という 2 つのメソッドを含むインターフェイス Iterator を定義しています。前者はコレクション内に次の要素があるかどうかを検出するために使用され、後者は現在の要素を取得するために使用されます。
イテレータの実装type Iterator interface { HasNext() bool Next() interface{} }
上記のコードでは、データと現在の添え字インデックスを格納するための配列 array を含む構造体 ArrayIterator を定義します。次に、Iterator インターフェイスに HasNext() と Next() という 2 つのメソッドを実装しました。このうち、HasNext() メソッドは、現在の添字が配列の長さより小さいかどうかを判断します。そうであれば、引き続き走査できる要素がまだあります。Next() メソッドは、現在の要素の値を取得して移動します。次の要素の添え字。
反復子を使用した配列の走査type ArrayIterator struct { array []interface{} index int } func (iterator *ArrayIterator) HasNext() bool { return iterator.index < len(iterator.array) } func (iterator *ArrayIterator) Next() interface{} { if !iterator.HasNext() { return nil } value := iterator.array[iterator.index] iterator.index++ return value }
上記のコードでは、配列 arr と反復子 iterator を定義します。次に、for ループとイテレータを使用して配列を反復処理します。各ループでは、Next() メソッドを使用して現在の要素の値を取得し、それを出力します。
結論以上がGolang はイテレータを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。