Clausuras en Dart
Las funciones son valores que recuerdan las variables de alrededor.
// Functions are values: pass them, return them, close over state.
Function makeCounter() {
var seen = 0;
return (String species) {
seen += 1;
return '#$seen: $species';
};
}
void main() {
final log = makeCounter();
print(log('wren'));
print(log('dunnock'));
// A function parameter typed inline, applied by the caller.
int apply(int n, int Function(int) f) => f(n);
print(apply(6, (n) => n * n));
}
Cómo funciona
makeCounterdevuelve una función que encierra aseen.- Cada llamada por
logincrementa el contador capturado. int Function(int)tipa un parámetro de función en línea.
Palabras clave y builtins usados aquí
FunctionStringfinalintreturnvarvoid
El intento, en números
- Líneas
- 18
- Caracteres a escribir
- 401
- Tokens
- 106
- Ritmo de tres estrellas
- 70 tpm
Al ritmo de tres estrellas de 70 tokens por minuto, este intento toma unos 91 segundos.
Paso 2 de 3 en Funciones; paso 8 de 27 en Fundamentos del lenguaje.