Milleks kasutatakse nimetatud parameetreid funktsioonides ja konstruktorites?
sobes.tech AI
Vastus AI-lt
Dart/Flutteri funktsioonides ja konstruktorites nimetatud parameetrid lahendavad mitu ülesannet:
-
Koodi loetavuse parandamine: Nimetatud parameetrite nimed näitavad selgelt nende otstarvet väljakutsel. See on eriti kasulik, kui funktsioonil või konstruktoril on palju sama tüüpi argumente.
// Nimeta parameetriteta, ei ole kohe selge, mida tähendavad 1.0 ja 5.0 Widget buildContainer(1.0, 5.0, Colors.blue); // Nimeta parameetritega, argumentide otstarve on selge Widget buildContainer({double? padding, double? margin, Color? color}); Widget container = buildContainer(padding: 1.0, margin: 5.0, color: Colors.blue); -
Kutsepaindlikkuse tagamine: Need võimaldavad kutsuda funktsioone või konstruktorid, edastades ainult vajalikud parameetrid, ignoreerides ülejäänud, kui need ei ole kohustuslikud (
requiredvõi vaikimisi väärtused).// Kutsumine ainult vajalike parameetritega Widget container = buildContainer(color: Colors.red); -
Argumentide järjekorra viga ennetamine: Kuna parameetrid on märgitud nime järgi, ei ole nende järjekord väljakutsel oluline, mis väldib vigu, mis on seotud argumentide vale järjekorraga.
// Nimeta parameetrite järjekord ei ole oluline Widget container1 = buildContainer(padding: 1.0, color: Colors.blue); Widget container2 = buildContainer(color: Colors.blue, padding: 1.0); // Võrdne -
Koodi toetuse parandamine: Nimeta parameetrid lihtsustavad uute mitte-kohustuslike parameetrite lisamist funktsiooni või klassi tulevikus ilma olemasolevaid väljakutseid muutmata.
Enamik Flutteri vidinaid kasutab nimetatud parameetreid, mis muudab nende API-d intuitiivsemaks ja paindlikumaks.
Need deklareeritakse sulgudes {} funktsiooni või konstruktorite parameetrites. Kohustuslikud nimetatud parameetrid märgitakse sõnaga required.
// Kohustuslik nimetatud parameeter
void printRequiredName({required String name}) {
print(name);
}
// Mitte-kohustuslik nimetatud parameeter, vaikimisi väärtusega
void printOptionalAge({int age = 30}) {
print(age);
}