Dart Final Const
Der Einsatz von Final und Const in Dart ist nicht ganz einfach zu verstehen. Beide Schlüsselwörter deklarieren eine Variable, die explizit im Code initialisiert werden muss und im weiteren Verlauf nicht mehr veränderbar ist. Wir können zum Beispiel deklarieren: int zahl; .
Die Variable zahl ist nicht initialisiert und wird von Dart mit dem Wert null belegt. Das sollte man nicht mit 0 verwechseln. null lässt sich am besten mit "undefiniert" übersetzen und ist ein Sprachkonstrukt, welches sich innerhalb von Dart auch benutzen bzw abfragen lässt.
Im weiteren Verlauf des Programms können wir der Variable zahl werte zuweisen, sprich den Inhalt von zahl ändern. Bei final und const sieht das anders aus.
Beispiel Code:
Die Variable zahl ist nicht initialisiert und wird von Dart mit dem Wert null belegt. Das sollte man nicht mit 0 verwechseln. null lässt sich am besten mit "undefiniert" übersetzen und ist ein Sprachkonstrukt, welches sich innerhalb von Dart auch benutzen bzw abfragen lässt.
Im weiteren Verlauf des Programms können wir der Variable zahl werte zuweisen, sprich den Inhalt von zahl ändern. Bei final und const sieht das anders aus.
const
Beispiel Code:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
void main() { | |
const int tage = 7; | |
const int meinUrlaub = tage*2; | |
print("The output is ${meinUrlaub}"); | |
} |
final
final ist ein enger Verwandter von const. Der Name suggeriert schon das endgültige und dementsprechend ist er zu verwenden. Mit
final int alter = 150;
definieren wir einen nicht mehr änderbaren Wert. Auch eine final Variable kann während der "Compile Time" generiert werden. Dart intern ist eine final Variable auch immer eine const Variable.
Was ist aber nun der Unterschied zwischen const und final ?
Dart initialisiert final Variablen wenn auf sie zugegriffen wird. Damit ist gemeint, das Dart die final Variablen während der Laufzeit des Programmes initialisiert. Eine final Variable kann zum Beispiel eine Liste enthalten, die auch nach der Initialisierung verändert werden kann. const Variablen hingegen werden während der "Compile Time", der Erstellungszeit des Programms, initialisiert. Das heißt, selbst wenn man die const Variable während der Laufzeit des Programms nicht verwenden würde, wird sie in der "Compile Time" initialisiert und mit einem Speicherplatz versorgt.
Kurz und vereinfachend: const = ein "Compile Time" Variablentyp, final = ein "Laufzeit" Variablentyp.
Hier noch ein Beispiel Code zum Thema:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
void main() { | |
final List<String> woerter = ["zeit","haus"]; | |
final datum = DateTime.now(); | |
const int tage = 7; | |
const int meinUrlaub = tage*2; | |
print("The output is ${meinUrlaub}"); | |
void berechnung(){ | |
const int neueZeit = tage*tage; | |
print(neueZeit); | |
woerter.add("baum"); | |
print(woerter[2]); | |
print(datum); | |
} | |
berechnung(); | |
} |
Kommentare
Kommentar veröffentlichen