typestar

Records en Dart

Agrupa valores sin una clase; la forma es el tipo.

// A record bundles values without a class; the shape is the type.
(double, double) hideLocation() => (52.74, 0.39);

({String species, int count}) bestOfDay() =>
    (species: 'marsh harrier', count: 4);

void main() {
  // Positional records destructure by position.
  final (lat, lon) = hideLocation();
  print('Hide at $lat N, $lon E');

  // Named fields read by name, destructured or dotted.
  final best = bestOfDay();
  print('${best.count} ${best.species}');
  final (:species, :count) = bestOfDay();
  print('$species x$count');
}

Cómo funciona

  1. (double, double) es un tipo de record posicional.
  2. ({String species, int count}) nombra sus campos.
  3. Desestructura por posición, por .campo, o con (:species, :count).

Palabras clave y builtins usados aquí

El intento, en números

Líneas
17
Caracteres a escribir
520
Tokens
120
Ritmo de tres estrellas
65 tpm

Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 111 segundos.

Escribe este fragmento

Paso 1 de 3 en Records y patrones; paso 19 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →

Records en otros lenguajes