Solidez - Operadores
¿Qué es un operador?
Tomemos una expresión simple 4 + 5 is equal to 9. Aquí 4 y 5 se llamanoperands y '+' se llama operator. Solidity admite los siguientes tipos de operadores.
- Operadores aritméticos
- Operadores de comparación
- Operadores lógicos (o relacionales)
- Operadores de Asignación
- Operadores condicionales (o ternarios)
Echemos un vistazo a todos los operadores uno por uno.
Operadores aritméticos
Solidity admite los siguientes operadores aritméticos:
Suponga que la variable A tiene 10 y la variable B tiene 20, entonces -
No Señor. | Operador y descripción |
---|---|
1 | + (Addition) Agrega dos operandos Ex: A + B dará 30 |
2 | - (Subtraction) Resta el segundo operando del primero Ex: A - B dará -10 |
3 | * (Multiplication) Multiplica ambos operandos Ex: A * B dará 200 |
4 | / (Division) Divide el numerador entre el denominador Ex: B / A dará 2 |
5 | % (Modulus) Genera el resto de una división entera Ex: B% A dará 0 |
6 | ++ (Increment) Aumenta un valor entero en uno Ex: A ++ dará 11 |
7 | -- (Decrement) Disminuye un valor entero en uno. Ex: A-- dará 9 |
Operadores de comparación
Solidity admite los siguientes operadores de comparación:
Suponga que la variable A tiene 10 y la variable B tiene 20, entonces -
No Señor. | Operador y descripción |
---|---|
1 | = = (Equal) Comprueba si el valor de dos operandos es igual o no, en caso afirmativo, la condición se cumple. Ex: (A == B) no es cierto. |
2 | != (Not Equal) Comprueba si el valor de dos operandos es igual o no, si los valores no son iguales, la condición se vuelve verdadera. Ex: (A! = B) es cierto. |
3 | > (Greater than) Comprueba si el valor del operando izquierdo es mayor que el valor del operando derecho; si es así, la condición se cumple. Ex: (A> B) no es cierto. |
4 | < (Less than) Comprueba si el valor del operando izquierdo es menor que el valor del operando derecho; en caso afirmativo, la condición se cumple. Ex: (A <B) es cierto. |
5 | >= (Greater than or Equal to) Comprueba si el valor del operando izquierdo es mayor o igual que el valor del operando derecho; si es así, la condición se convierte en verdadera. Ex: (A> = B) no es cierto. |
6 | <= (Less than or Equal to) Comprueba si el valor del operando izquierdo es menor o igual que el valor del operando derecho; si es así, la condición se cumple. Ex: (A <= B) es cierto. |
Operadores logicos
Solidity admite los siguientes operadores lógicos:
Suponga que la variable A tiene 10 y la variable B tiene 20, entonces -
No Señor. | Operador y descripción |
---|---|
1 | && (Logical AND) Si ambos operandos son distintos de cero, la condición se cumple. Ex: (A && B) es cierto. |
2 | || (Logical OR) Si alguno de los dos operandos es distinto de cero, la condición se cumple. Ex: (A || B) es cierto. |
3 | ! (Logical NOT) Invierte el estado lógico de su operando. Si una condición es verdadera, entonces el operador lógico NOT la convertirá en falsa. Ex:! (A && B) es falso. |
Operadores bit a bit
Solidity admite los siguientes operadores bit a bit:
Suponga que la variable A tiene 2 y la variable B tiene 3, entonces -
No Señor. | Operador y descripción |
---|---|
1 | & (Bitwise AND) Realiza una operación booleana AND en cada bit de sus argumentos enteros. Ex: (A y B) es 2. |
2 | | (BitWise OR) Realiza una operación booleana OR en cada bit de sus argumentos enteros. Ex: (A | B) es 3. |
3 | ^ (Bitwise XOR) Realiza una operación OR exclusiva booleana en cada bit de sus argumentos enteros. OR exclusivo significa que el operando uno es verdadero o el operando dos es verdadero, pero no ambos. Ex: (A ^ B) es 1. |
4 | ~ (Bitwise Not) Es un operador unario y opera invirtiendo todos los bits del operando. Ex: (~ B) es -4. |
5 | << (Left Shift) Mueve todos los bits de su primer operando a la izquierda el número de lugares especificado en el segundo operando. Los nuevos bits se llenan de ceros. Cambiar un valor a la izquierda en una posición equivale a multiplicarlo por 2, cambiar dos posiciones equivale a multiplicar por 4, y así sucesivamente. Ex: (A << 1) es 4. |
6 | >> (Right Shift) Operador de cambio a la derecha binario. El valor del operando izquierdo se mueve hacia la derecha por el número de bits especificado por el operando derecho. Ex: (A >> 1) es 1. |
7 | >>> (Right shift with Zero) Este operador es como el operador >>, excepto que los bits desplazados hacia la izquierda son siempre cero. Ex: (A >>> 1) es 1. |
Operadores de Asignación
Solidity admite los siguientes operadores de asignación:
No Señor. | Operador y descripción |
---|---|
1 | = (Simple Assignment ) Asigna valores del operando del lado derecho al operando del lado izquierdo Ex: C = A + B asignará el valor de A + B a C |
2 | += (Add and Assignment) Agrega el operando derecho al operando izquierdo y asigna el resultado al operando izquierdo. Ex: C + = A es equivalente a C = C + A |
3 | −= (Subtract and Assignment) Resta el operando derecho del operando izquierdo y asigna el resultado al operando izquierdo. Ex: C - = A es equivalente a C = C - A |
4 | *= (Multiply and Assignment) Multiplica el operando derecho por el operando izquierdo y asigna el resultado al operando izquierdo. Ex: C * = A es equivalente a C = C * A |
5 | /= (Divide and Assignment) Divide el operando izquierdo con el operando derecho y asigna el resultado al operando izquierdo. Ex: C / = A es equivalente a C = C / A |
6 | %= (Modules and Assignment) Toma el módulo usando dos operandos y asigna el resultado al operando izquierdo. Ex: C% = A es equivalente a C = C% A |
Note - La misma lógica se aplica a los operadores bit a bit, por lo que se convertirán en << =, >> =, >> =, & =, | = y ^ =.
Operador condicional (? :)
El operador condicional primero evalúa una expresión para un valor verdadero o falso y luego ejecuta una de las dos declaraciones dadas dependiendo del resultado de la evaluación.
No Señor. | Operador y descripción |
---|---|
1 | ? : (Conditional ) ¿Si la condición es verdadera? Entonces valor X: De lo contrario valor Y |