Operadores de asignación Dart

1. Operador de asignación básico =

Almacena el valor de la expresión de la derecha en la variable de la izquierda, sobrescribiendo el valor original.

Sintaxis:

variable = valor o expresión;
int age;
age = 10;        // Asigna el número 10 a age
String name;
name= "sam"; // Asignación de cadena de textoLenguaje del código: JavaScript (javascript)

2. Operador de asignación sensible a null ??=

Solo ejecuta la asignación si el valor de la variable izquierda es null. Si la variable no es null, mantiene su valor original.

Sintaxis:

variable ??= valor;

Equivale a:

if (variable == null) {
  variable = valor;
}Lenguaje del código: JavaScript (javascript)

Ejemplo:

void main() {
	int? total = null;
	total ??= 5;
	print(total); // Muestra 5, la asignación funciona porque total es null

	int? count = 100;
	count ??= 200;
	print(count); // Muestra 100, no se modifica al no ser null
}Lenguaje del código: PHP (php)

3. Operadores de asignación compuestos

Realizan operación y asignación en una sola línea

Para cualquier operador op

a op= b es equivalente a a = a op b

CategoríaOperadorSignificado
Aritmética básica+=Sumar y asignar
-=Restar y asignar
*=Multiplicar y asignar
/=División decimal y asignar
División entera~/=División entera y asignar (solo cociente entero)
Resto%=Módulo y asignar
Desplazamiento izquierdo bit<<=Desplazar a la izquierda y asignar
Desplazamiento derecho bit>>=Desplazar a la derecha y asignar
Desplazamiento derecho sin signo>>>=Desplazamiento derecho sin signo y asignar
AND bit a bit&=AND binario y asignar
XOR bit a bit^=XOR binario y asignar
OR bit a bit|=OR binario y asignar
Funcionamiento general:op= ba = a op b
Ejemplo práctico:a += ba = a + b

Código de ejemplo:

void main() {
	var num = 2;

	// *= Asignación compuesta multiplicación
	num *= 3; 
	print(num); // 6, equivalente a num = num * 3

	// += Suma
	num += 4;
	print(num); // 10, equivalente a num = num + 4

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

	// /= División decimal
	double d = 10;
	d /= 2;
	print(d); // 5.0

	// ~/= División entera
	int n = 7;
	n ~/= 2;
	print(n); // 3

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

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

	// >>= Desplazamiento derecho
	int bit2 = 8;
	bit2 >>= 2; // 8 >> 2 = 2
	print(bit2); // 2

	// >>>= Desplazamiento derecho sin signo
	int bit3 = -8;
	bit3 >>>= 2;
	print(bit3); //4611686018427387902, número muy grande 

	// &= AND binario
	int x = 6; // 110
	x &= 3;    // 011
	print(x);  // 010 = 2

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

	// |= OR binario
	int z = 4;
	z |= 1;
	print(z); // 5
}Lenguaje del código: PHP (php)

Sobre los desplazamientos binarios: int bit1 = 1; desplazamos 2 bits hacia la izquierda,

Representación binaria de 32 bits del número decimal 1:

00000000 00000000 00000000 00000001

x << n: Mueve todos los bits binarios de x n posiciones a la izquierda, rellena los espacios vacíos de la derecha con 0 y elimina los bits que se salen por la izquierda.

En el ejemplo anterior queda así:

00000000 00000000 00000000 00000100

Este valor binario corresponde al número decimal 4

Los operadores lógicos los veremos más adelante. Por ahora solo debes dominar los operadores de asignación, son el eje principal de esta lección.

void main() {
  // 1. Asignación básica =
  var a = 2;
  print(a == 2);

  // 2. Multiplicación compuesta *=
  a *= 3; // a =  a * 3;
  print(a == 6);

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

  // 4. Asignación sensible a null ??=
  int? b; // Valor predeterminado null
  b ??= 20;
  print(b == 20);

  b ??= 99; // b no es null, no cambia
  print(b == 20);

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

  // 6. Resto %=
  a %= 3;
  print(a == 2);
}Lenguaje del código: Dart (dart)

Todos los resultados impresos son true

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *