Dart Zuweisungsoperatoren

1. Einfacher Zuweisungsoperator =

Speichert den Wert des rechten Ausdrucks in die linke Variable und überschreibt den vorhandenen Wert.

Syntax:

Variable = Wert oder Ausdruck;
int age;
age = 10;        // Weise der Variable age den Wert 10 zu
String name;
name= "sam"; // ZeichenkettenzuweisungCode-Sprache: JavaScript (javascript)

2. Null-sensitiver Zuweisungsoperator ??=

Die Zuweisung wird nur ausgeführt, wenn die linke Variable den Wert null hat. Ist die Variable nicht null, bleibt ihr ursprünglicher Wert erhalten.

Syntax:

Variable ??= Wert;

Entspricht folgendem Code:

if (Variable == null) {
  Variable = Wert;
}Code-Sprache: JavaScript (javascript)

Beispiel:

void main() {
	int? total = null;
	total ??= 5;
	print(total); // Gibt 5 aus, Zuweisung greift weil total null ist

	int? count = 100;
	count ??= 200;
	print(count); // Gibt 100 aus, Zuweisung greift nicht weil count ungleich null ist
}Code-Sprache: PHP (php)

3. Kombinierte Zuweisungsoperatoren

Kombinieren Rechenoperation und Zuweisung in einem Schritt

Für jeden beliebigen Operator op gilt:

a op= b ist identisch mit a = a op b

KategorieOperatorBedeutung
Grundrechenarten+=Addieren, dann zuweisen
-=Subtrahieren, dann zuweisen
*=Multiplizieren, dann zuweisen
/=Gleitkommadivision, dann zuweisen
Ganzzahldivision~/=Ganzzahldivision, dann zuweisen (nur ganzzahliger Quotient)
Restwertrechnung%=Modulo berechnen, dann zuweisen
Bitlinksverschiebung<<=Linksverschieben, dann zuweisen
Bitrechtsverschiebung>>=Rechtsverschieben, dann zuweisen
Vorzeichenlose Rechtsverschiebung>>>=Vorzeichenlos rechtsverschieben, dann zuweisen
Bitweises UND&=Bitweises UND, dann zuweisen
Bitweises XOR^=Bitweises XOR, dann zuweisen
Bitweises ODER|=Bitweises ODER, dann zuweisen
Funktionsweise aller Rechenoperatoren:op= ba = a op b
Praxisbeispiel:a += ba = a + b

Codebeispiel:

void main() {
	var num = 2;

	// *= Multiplikations-Zuweisung
	num *= 3; 
	print(num); // 6, entspricht num = num * 3

	// += Addition
	num += 4;
	print(num); // 10, entspricht num = num + 4

	// -= Subtraktion
	num -= 2;
	print(num); // 8

	// /= Gleitkommadivision
	double d = 10;
	d /= 2;
	print(d); // 5.0

	// ~/= Ganzzahldivision
	int n = 7;
	n ~/= 2;
	print(n); // 3

	// %= Modulo
	int m = 9;
	m %= 2;
	print(m); // 1

	// <<= Linksverschiebung
	int bit1 = 1;
	bit1 <<= 2; // 1 << 2 = 4
	print(bit1); // 4

	// >>= Rechtsverschiebung
	int bit2 = 8;
	bit2 >>= 2; // 8 >> 2 = 2
	print(bit2); // 2

	// >>>= Vorzeichenlose Rechtsverschiebung
	int bit3 = -8;
	bit3 >>>= 2;
	print(bit3); //4611686018427387902, eine sehr große Zahl 

	// &= Bitweises UND
	int x = 6; // 110
	x &= 3;    // 011
	print(x);  // 010 = 2

	// ^= Bitweises XOR
	int y = 5;
	y ^= 3;
	print(y);

	// |= Bitweises ODER
	int z = 4;
	z |= 1;
	print(z); // 5
}Code-Sprache: PHP (php)

Zur Bitverschiebung: int bit1 = 1; um 2 Bit nach links verschieben,

32-Bit-Binärdarstellung der Dezimalzahl 1:

00000000 00000000 00000000 00000001

x << n: Verschiebe alle Binärbits von x um n Stellen nach links, fülle freie untere Bits rechts mit 0 auf und verwerfe überlaufende obere Bits links.

Aus dem obigen Beispiel ergibt sich:

00000000 00000000 00000000 00000100

Dieser Binärwert entspricht der Dezimalzahl 4

Logische Operatoren behandeln wir an späterer Stelle. Merken Sie sich vorerst nur die Zuweisungsoperatoren – dies ist der zentrale Inhalt dieser Lektion.

void main() {
  // 1. Einfache Zuweisung =
  var a = 2;
  print(a == 2);

  // 2. Multiplikationszuweisung *=
  a *= 3; // a =  a * 3;
  print(a == 6);

  // 3. Additionszuweisung +=
  a += 4; // a = a + 4;
  print(a == 10);

  // 4. Null-sensible Zuweisung ??=
  int? b; // Standardwert null
  b ??= 20;
  print(b == 20);

  b ??= 99; // b ist nicht null, keine Änderung
  print(b == 20);

  // 5. Subtraktion -=
  a -= 5;
  print(a == 5);

  // 6. Modulo %=
  a %= 3;
  print(a == 2);
}Code-Sprache: Dart (dart)

Alle Ausgaben ergeben true

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert