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ía | Operador | Significado |
|---|---|---|
| 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: | a op= b | a = a op b |
| Ejemplo práctico: | a += b | a = 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