typestar

Mixins en Dart

Comportamiento engrapado con with, sin reclamar superclase.

// A mixin is behavior without a superclass claim; with staples it on.
mixin Ringed {
  String get band;
  String describeBand() => 'wears band $band';
}

class Bird {
  final String species;
  Bird(this.species);
}

class StudyBird extends Bird with Ringed {
  final String band;
  StudyBird(super.species, this.band);
}

void main() {
  final subject = StudyBird('reed warbler', 'RB-0207');
  print('${subject.species} ${subject.describeBand()}');
}

Cómo funciona

  1. mixin Ringed declara un band abstracto y un método que lo usa.
  2. extends Bird with Ringed combina clase base y mixin.
  3. super.species reenvía un parámetro de constructor en un token.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
20
Caracteres a escribir
435
Tokens
97
Ritmo de tres estrellas
65 tpm

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

Escribe este fragmento

Paso 2 de 3 en Clases; paso 14 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →

Mixins en otros lenguajes