Dart-Programmierung - Variablen

Eine Variable ist „ein benannter Bereich im Speicher“, in dem Werte gespeichert werden. Mit anderen Worten, es fungiert als Container für Werte in einem Programm. Variablennamen werden als Bezeichner bezeichnet. Im Folgenden sind die Namensregeln für einen Bezeichner aufgeführt:

  • Bezeichner können keine Schlüsselwörter sein.

  • Bezeichner können Alphabete und Zahlen enthalten.

  • Bezeichner dürfen keine Leerzeichen und Sonderzeichen enthalten, außer dem Unterstrich (_) und dem Dollarzeichen ($).

  • Variablennamen dürfen nicht mit einer Zahl beginnen.

Geben Sie Syntax ein

Eine Variable muss deklariert werden, bevor sie verwendet wird. Dart verwendet das Schlüsselwort var, um dasselbe zu erreichen. Die Syntax zum Deklarieren einer Variablen lautet wie folgt:

var name = 'Smith';

Alle Variablen in Dart speichern einen Verweis auf den Wert, anstatt den Wert zu enthalten. Die Variable namens name enthält einen Verweis auf ein String-Objekt mit dem Wert "Smith".

Dart unterstützt type-checkingindem dem Variablennamen der Datentyp vorangestellt wird. Durch die Typprüfung wird sichergestellt, dass eine Variable nur Daten enthält, die für einen Datentyp spezifisch sind. Die Syntax dafür ist unten angegeben -

String name = 'Smith'; 
int num = 10;

Betrachten Sie das folgende Beispiel -

void main() { 
   String name = 1; 
}

Das obige Snippet führt zu einer Warnung, da der der Variablen zugewiesene Wert nicht mit dem Datentyp der Variablen übereinstimmt.

Ausgabe

Warning: A value of type 'String' cannot be assigned to a variable of type 'int'

Alle nicht initialisierten Variablen haben den Anfangswert null. Dies liegt daran, dass Dart alle Werte als Objekte betrachtet. Das folgende Beispiel zeigt dasselbe -

void main() { 
   int num; 
   print(num); 
}

Ausgabe

Null

Das dynamische Schlüsselwort

Variablen, die ohne statischen Typ deklariert wurden, werden implizit als dynamisch deklariert. Variablen können auch mit dem dynamischen Schlüsselwort anstelle des var-Schlüsselworts deklariert werden.

Das folgende Beispiel zeigt dasselbe.

void main() { 
   dynamic x = "tom"; 
   print(x);  
}

Ausgabe

tom

Final und Const

Das final und constSchlüsselwörter werden verwendet, um Konstanten zu deklarieren. Dart verhindert, dass die Werte einer Variablen geändert werden, die mit dem Schlüsselwort final oder const deklariert wurde. Diese Schlüsselwörter können in Verbindung mit dem Datentyp der Variablen oder anstelle von verwendet werdenvar Stichwort.

Das constDas Schlüsselwort wird verwendet, um eine Konstante zur Kompilierungszeit darzustellen. Variablen, die mit dem deklariert wurdenconst Schlüsselwort sind implizit endgültig.

Syntax: endgültiges Schlüsselwort

final variable_name

ODER

final data_type  variable_name

Syntax: const Schlüsselwort

const variable_name

ODER

const data_type variable_name

Beispiel - endgültiges Schlüsselwort

void main() { 
   final val1 = 12; 
   print(val1); 
}

Ausgabe

12

Beispiel - const Schlüsselwort

void main() { 
   const pi = 3.14; 
   const area = pi*12*12; 
   print("The output is ${area}"); 
}

Das obige Beispiel deklariert zwei Konstanten: pi und area, Verwendung der constStichwort. Dasarea Der Wert der Variablen ist eine Konstante zur Kompilierungszeit.

Ausgabe

The output is 452.15999999999997

Note - Nur constVariablen können verwendet werden, um eine Kompilierungszeitkonstante zu berechnen. Konstanten zur Kompilierungszeit sind Konstanten, deren Werte zur Kompilierungszeit bestimmt werden

Beispiel

Dart löst eine Ausnahme aus, wenn versucht wird, mit dem deklarierte Variablen zu ändern finaloder const Schlüsselwort. Das folgende Beispiel zeigt dasselbe -

void main() { 
   final v1 = 12; 
   const v2 = 13; 
   v2 = 12; 
}

Der oben angegebene Code löst den folgenden Fehler aus als output - -

Unhandled exception: 
cannot assign to final variable 'v2='.  
NoSuchMethodError: cannot assign to final variable 'v2=' 
#0  NoSuchMethodError._throwNew (dart:core-patch/errors_patch.dart:178) 
#1      main (file: Test.dart:5:3) 
#2    _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:261) 
#3    _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:148)