Raku-Kurs / Funktionale, nebenläufige, reaktive und Web-Programmierung / Funktionale Programmierung / Lambdas und Closures / Closures
Quiz — Closures
Was gibt das folgende Programm aus?
sub make-acc {
my $total = 0;
return sub ($x) { $total += $x };
}
my &add = make-acc;
add(10);
add(20);
say add(5);| 0 | 5 |
| 0 | 30 |
| 1 | 35 |
| 0 | 0 |
Die zurückgegebene Subroutine schließt sich um $total,
alle drei Aufrufe teilen sich also dieselbe Variable. Die ersten beiden
Aufrufe bringen sie auf 30; der dritte addiert
5 und gibt die laufende Summe aus, 35.
Kursnavigation
← Closures | Ein Zähler →