PHP7でのジェネレーターの委任
ジェネレーターの概念は、以前のバージョンでも使用可能だったため、PHP7では新しいものではありません。ジェネレーターを使用すると、イテレーター・インターフェースを実装するクラスを実装するオーバーヘッドなしに、実装が容易になります。ジェネレーターの助けを借りて、 foreachを書くことができます メモリ内の配列を使用せずにコーディングします。また、「メモリ制限超過エラー」を排除するのにも役立ちます。
PHP 7のジェネレーター委任を使用すると、別のジェネレーターに自動的に委任できます。また、トラバース可能なインターフェイスを実装する配列とオブジェクトも使用できます。
ジェネレータ委任の例1
<html> <head> <title> PHP 7 : Tutorialpoint </title> </head> <body> <?php function generator(){ yield "zero"; yield "one"; yield "two"; } function generator1(){ yield "three"; yield "four"; yield "five"; } function generator2(){ yield "six"; yield "seven"; yield "eight"; yield from generator(); yield "nine"; yield from generator1(); yield "ten"; } foreach (generator() as $value){ echo $value, PHP_EOL; } foreach(generator2() as $value){ echo $value, PHP_EOL; } ?> </body> </html>
出力
zero one two six seven eight zero one two nine three four five ten
説明
- 上記のコードをエディターで記述し、上記の例に示すように必要なHTMLコードを記述できます。また、HTMLの本体部分は、ジェネレーターの戻り式に実際のPHP7コードを挿入します。
- 次に、「generator」、「generator1」、「generator2」を使用して3つの関数が宣言されます。
- ジェネレーター関数で歩留まりを「ゼロ」、「1」、「2」と定義しました。
- 「generator1」関数では、yield「three」、「four」、および「five」が定義されています。
- 「generator2」関数では、generator2のジェネレーターとジェネレーター1を読み取るyield「six」、「seven」、および「eight」を定義しました。
- 最後に、yieldsの値をエコーする最後まで、「generator」関数と「generator2」関数を繰り返します。
-
JavaScriptジェネレーター
ジェネレーター関数は、yieldキーワードを使用して結果を生成し、戻った後もその状態を維持します。これにより、次に呼び出されたときに、最後のyield実行からすぐに再開できます。ジェネレーター関数を呼び出すたびに、呼び出し元に値が返されます。 以下はJavaScriptのジェネレーター関数のコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport"
-
Pythonのジェネレーター?
ジェネレーターは、PEP 255で導入されて以来、Pythonの重要な部分となっています。 Pythonのジェネレーターは、ループの反復動作を制御するために使用できる特別なルーチンです。ジェネレータは、配列を返す関数に似ています。ジェネレーターにはパラメーターがあり、これを呼び出すことができ、一連の数値を生成します。ただし、配列全体を返す関数とは異なり、ジェネレーターは一度に1つの値を生成するため、必要なメモリは少なくなります。 キーワード「yield」を持つPython関数は、ジェネレーターと呼ばれることがあります。通常のPython関数は、最初の行から実行を開始し、returnステート