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
mixin Ringeddeclara unbandabstracto y un método que lo usa.extends Bird with Ringedcombina clase base y mixin.super.speciesreenvía un parámetro de constructor en un token.
Palabras clave y builtins usados aquí
Stringclassextendsfinalgetmixinsuperthisvoidwith
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.
Paso 2 de 3 en Clases; paso 14 de 27 en Fundamentos del lenguaje.