Hi, habe mir mal das Thema Generatoren- Stichwort yield - angeguckt und versuche gerade herauszufinden, wofür ich die im wirklichen Entwicklerleben einsetzen könnte. Klingt ja erst mal gut, dass man speicherlastige Arrays ersetzen kann.
Wenn ich aber die Beispiele angucke, wo über aufsteigende Integers iteriert wird frage ich mich schon,wo der echte Nutzen ist. Ich würde ja sowas gern bei der Auswertung von Datenbeständen verwenden.
Also statt Abfrage => Result => Result in Array übertragen
irgendwie sowas:
Aber macht das Sinn? Ich meine, man könnte ja auch nur das Result durchlaufen, statt da einen Generator zu bemühen.
Also, ich glaube, ich habe das noch nicht richtig verstanden und fände es nett, wenn ihr mal Anwendungsfälle nennen könnt, wo Generatoren wirklich sinnvoll sind?!
Wenn ich aber die Beispiele angucke, wo über aufsteigende Integers iteriert wird frage ich mich schon,wo der echte Nutzen ist. Ich würde ja sowas gern bei der Auswertung von Datenbeständen verwenden.
Also statt Abfrage => Result => Result in Array übertragen
irgendwie sowas:
PHP-Code:
function get_rand_entries($result) {
while ($row = $result->fetch_assoc()) {
yield $row['id'] => $row;
}
}
$mysqli = new mysqli('localhost',bla,'blie','generator_test');
$sql = "SELECT id,num, str FROM rand_entries";
if ($result = $mysqli->query($sql)) {
$sum = 0;
foreach (get_rand_entries($result) as $id => $row) {
$sum += $row['num'] / 100;
}
}
Also, ich glaube, ich habe das noch nicht richtig verstanden und fände es nett, wenn ihr mal Anwendungsfälle nennen könnt, wo Generatoren wirklich sinnvoll sind?!
Kommentar