Scala - Operadores

Un operador es un símbolo que le dice al compilador que realice manipulaciones matemáticas o lógicas específicas. Scala es rico en operadores integrados y proporciona los siguientes tipos de operadores:

  • Operadores aritméticos
  • Operadores relacionales
  • Operadores logicos
  • Operadores bit a bit
  • Operadores de Asignación

Este capítulo examinará los operadores aritméticos, relacionales, lógicos, bit a bit, de asignación y otros, uno por uno.

Operadores aritméticos

Los siguientes operadores aritméticos son compatibles con el lenguaje Scala. Por ejemplo, supongamos que la variable A tiene 10 y la variable B tiene 20, entonces -

Mostrar ejemplos

Operador Descripción Ejemplo
+ Agrega dos operandos A + B dará 30
- Resta el segundo operando del primero A - B dará -10
* Multiplica ambos operandos A * B dará 200
/ Divide el numerador por el numerador B / A dará 2
% El operador de módulo encuentra el resto después de la división de un número por otro B% A dará 0

Operadores relacionales

Los siguientes operadores relacionales son compatibles con el lenguaje Scala. Por ejemplo, supongamos que la variable A tiene 10 y la variable B tiene 20, entonces -

Mostrar ejemplos

Operador Descripción Ejemplo
== Comprueba si los valores de dos operandos son iguales o no, si es así, la condición se convierte en verdadera. (A == B) no es cierto.
! = Comprueba si los valores de dos operandos son iguales o no, si los valores no son iguales, la condición se convierte en verdadera. (A! = B) es cierto.
> Comprueba si el valor del operando izquierdo es mayor que el valor del operando derecho, si es así, la condición se convierte en verdadera. (A> B) no es cierto.
< Comprueba si el valor del operando izquierdo es menor que el valor del operando derecho, si es así, la condición se convierte en verdadera. (A <B) es cierto.
> = 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. (A> = B) no es cierto.
<= Comprueba si el valor del operando izquierdo es menor o igual que el valor del operando derecho, si es así, la condición se convierte en verdadera. (A <= B) es cierto.

Operadores logicos

Los siguientes operadores lógicos son compatibles con el lenguaje Scala. Por ejemplo, suponga que la variable A tiene 1 y la variable B tiene 0, entonces -

Mostrar ejemplos

Operador Descripción Ejemplo
&& Se llama operador AND lógico. Si ambos operandos son distintos de cero, la condición se vuelve verdadera. (A && B) es falso.
|| Se llama Operador OR lógico. Si alguno de los dos operandos es distinto de cero, la condición se cumple. (A || B) es cierto.
! Se llama Operador NOT lógico. Úselo para revertir el estado lógico de su operando. Si una condición es verdadera, el operador NOT lógico la convertirá en falsa. ! (A && B) es cierto.

Operadores bit a bit

El operador bit a bit trabaja en bits y realiza una operación bit a bit. Las tablas de verdad para &, | y ^ son las siguientes:

pags q p & q p | q p ^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

Suponga si A = 60; y B = 13; ahora en formato binario serán los siguientes:

A = 0011 1100
B = 0000 1101
-----------------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A = 1100 0011

Los operadores bit a bit admitidos por el lenguaje Scala se enumeran en la siguiente tabla. Suponga que la variable A tiene 60 y la variable B tiene 13, entonces -

Mostrar ejemplos

Operador Descripción Ejemplo
Y El operador AND binario copia un bit al resultado si existe en ambos operandos. (A & B) dará 12, que es 0000 1100
| El operador OR binario copia un bit si existe en cualquiera de los operandos. (A | B) dará 61, que es 0011 1101
^ El operador binario XOR copia el bit si está configurado en un operando pero no en ambos. (A ^ B) dará 49, que es 0011 0001
~ El operador de complemento binario es unario y tiene el efecto de "voltear" bits. (~ A) dará -61, que es 1100 0011 en forma de complemento a 2 debido a un número binario con signo.
<< Operador binario de cambio a la izquierda. Las posiciones de bit del valor de los operandos izquierdos se mueven a la izquierda por el número de bits especificado por el operando derecho. Un << 2 dará 240, que es 1111 0000
>> Operador de cambio a la derecha binario. Las posiciones de bit del valor del operando izquierdo se mueven hacia la derecha el número de bits especificado por el operando derecho. A >> 2 dará 15, que es 1111
>>> Desplazar operador de llenado de cero a la derecha. El valor de los operandos de la izquierda se mueve hacia la derecha el número de bits especificado por el operando de la derecha y los valores desplazados se rellenan con ceros. A >>> 2 dará 15 que es 0000 1111

Operadores de Asignación

Existen los siguientes operadores de asignación compatibles con el lenguaje Scala:

Mostrar ejemplos

Operador Descripción Ejemplo
= Operador de asignación simple, asigna valores de los operandos del lado derecho al operando del lado izquierdo C = A + B asignará el valor de A + B en C
+ = Agregar operador de asignación Y, agrega el operando derecho al operando izquierdo y asigna el resultado al operando izquierdo C + = A es equivalente a C = C + A
- = Restar operador de asignación Y, resta el operando derecho del operando izquierdo y asigna el resultado al operando izquierdo C - = A es equivalente a C = C - A
* = Multiplica el operador de asignación AND, multiplica el operando derecho con el operando izquierdo y asigna el resultado al operando izquierdo C * = A es equivalente a C = C * A
/ = Operador de división Y asignación, divide el operando izquierdo con el operando derecho y asigna el resultado al operando izquierdo C / = A es equivalente a C = C / A
% = Operador de asignación de módulo Y, toma el módulo usando dos operandos y asigna el resultado al operando izquierdo C% = A es equivalente a C = C% A
<< = Operador de desplazamiento Y asignación a la izquierda C << = 2 es lo mismo que C = C << 2
>> = Operador de desplazamiento Y asignación a la derecha C >> = 2 es lo mismo que C = C >> 2
& = Operador de asignación AND bit a bit C & = 2 es lo mismo que C = C & 2
^ = Operador de asignación y OR exclusivo bit a bit C ^ = 2 es lo mismo que C = C ^ 2
| = OR inclusivo bit a bit y operador de asignación C | = 2 es lo mismo que C = C | 2

Precedencia de operadores en Scala

La precedencia del operador determina la agrupación de términos en una expresión. Esto afecta cómo se evalúa una expresión. Ciertos operadores tienen mayor precedencia que otros; por ejemplo, el operador de multiplicación tiene mayor precedencia que el operador de suma -

Por ejemplo, x = 7 + 3 * 2; aquí, a x se le asigna 13, no 20 porque el operador * tiene mayor precedencia que +, por lo que primero se multiplica por 3 * 2 y luego se suma a 7.

Eche un vistazo a la siguiente tabla. Los operadores con la precedencia más alta aparecen en la parte superior de la tabla y los que tienen la precedencia más baja aparecen en la parte inferior. Dentro de una expresión, los operadores de mayor precedencia se evaluarán primero.

Categoría Operador Asociatividad
Sufijo () [] De izquierda a derecha
Unario ! ~ De derecha a izquierda
Multiplicativo * /% De izquierda a derecha
Aditivo + - De izquierda a derecha
Cambio >> >>> << De izquierda a derecha
Relacional >> = <<= De izquierda a derecha
Igualdad ==! = De izquierda a derecha
Y bit a bit Y De izquierda a derecha
XOR bit a bit ^ De izquierda a derecha
O bit a bit | De izquierda a derecha
Y lógico && De izquierda a derecha
OR lógico || De izquierda a derecha
Asignación = + = - = * = / =% = >> = << = & = ^ = | = De derecha a izquierda
Coma , De izquierda a derecha