typestar

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

  1. makeCounter devuelve una función que encierra a seen.
  2. Cada llamada por log incrementa el contador capturado.
  3. int Function(int) tipa un parámetro de función en línea.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 2 de 3 en Funciones; paso 8 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →