Sobes.tech
Junior — Middle

Lehetséges-e egy metóduson belül egy változót a végleges módosítóval deklarálni anélkül, hogy azonnal inicializálnánk?

sobes.tech MI

Válasz az MI-től

A Dart nyelvben (amelyet a Flutterben használnak) egy final módosítóval ellátott változót egy módszeren belül deklarálhatunk azonnali inicializálás nélkül, de ennek az első használat előtt inicializálva kell lennie, különben fordítási hiba lép fel. Ez a késleltetett inicializálásnak köszönhető, például:

void példa() {
  final int x; // deklaráció inicializálás nélkül
  x = 10;      // használat előtt inicializálás
  print(x);
}

Azonban, miután értéket rendeltek hozzá, a final változó értékét nem lehet megváltoztatni. Ha megpróbálja a változót használni az inicializálás előtt, a fordító hibát jelez.