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ステート