Operadores de Kotlin: aritmética, operador de asignación y más

Kotlin tiene un conjunto de operadores para realizar operaciones aritméticas, de asignación, de comparación y más. Aprenderá a utilizar estos operadores en este artículo.

Los operadores son símbolos especiales (caracteres) que realizan operaciones sobre operandos (variables y valores). Por ejemplo, +es un operador que realiza sumas.

En el artículo de variables de Java, aprendió a declarar variables y asignar valores a las variables. Ahora, aprenderá a utilizar los operadores que realizan varias operaciones en ellos.

1. Operadores aritméticos

Aquí hay una lista de operadores aritméticos en Kotlin:

Operadores aritméticos de Kotlin
Operador Sentido
+ Adición (también se usa para la concatenación de cadenas)
- Operador de resta
* Operador de multiplicación
/ Operador de división
% Operador de módulo

Ejemplo: operadores aritméticos

 fun main(args: Array) ( val number1 = 12.5 val number2 = 3.5 var result: Double result = number1 + number2 println("number1 + number2 = $result") result = number1 - number2 println("number1 - number2 = $result") result = number1 * number2 println("number1 * number2 = $result") result = number1 / number2 println("number1 / number2 = $result") result = number1 % number2 println("number1 % number2 = $result") ) 

Cuando ejecute el programa, la salida será:

 número1 + número2 = 16,0 número1 - número2 = 9,0 número1 * número2 = 43,75 número1 / número2 = 3,5714285714285716 número1% número2 = 2,0

El +operador también se utiliza para la concatenación de Stringvalores.

Ejemplo: concatenación de cadenas

 fun main(args: Array) ( val start = "Talk is cheap. " val middle = "Show me the code. " val end = "- Linus Torvalds" val result = start + middle + end println(result) )

Cuando ejecute el programa, la salida será:

Hablar es barato. Enséñame el código. - Linus Torvalds

¿Cómo funcionan realmente los operadores aritméticos?

Suponga que está utilizando un +operador aritmético para sumar dos números ay b.

Bajo el capó, la expresión a + bllama a la a.plus(b)función miembro. El plusoperador está sobrecargado para trabajar con Stringvalores y otros tipos de datos básicos (excepto Char y Boolean).

 // + operador para tipos básicos operator fun plus (otro: Byte): Int operator fun plus (otro: Short): Int operator fun plus (otro: Int): Int operator fun plus (otro: Long): Long operator fun plus (otro: Float): Operador flotante fun plus (otro: Double): Double // para el operador de concatenación de cadenas fun String? .plus (other: Any?): String 

También puede utilizar el +operador para trabajar con tipos definidos por el usuario (como objetos) mediante la plus()función de sobrecarga .

Lectura recomendada: Sobrecarga del operador de Kotlin

Aquí hay una tabla de operadores aritméticos y sus funciones correspondientes:

Expresión Nombre de la función Se traduce en
a + b más a.plus (b)
a - b menos menos (b)
a * b veces a.veces (b)
a / b div a.div (b)
a% b modificación a.mod (b)

2. Operadores de asignación

Los operadores de asignación se utilizan para asignar valor a una variable. Ya hemos utilizado el operador de asignación simple =antes.

 val edad = 5

Aquí, 5 se asigna a la edad variable usando el =operador.

Aquí hay una lista de todos los operadores de asignación y sus funciones correspondientes:

Expresión Equivalente a Se traduce en
a + = b a = a + b a.plusAssign (b)
a - = b a = a - b a.minusAssign (b)
a * = b a = a * b Asignación de tiempos (b)
a / = b a = a / b a.divAssign (b)
a% = b a = a% b a.modAssign (b)

Ejemplo: operadores de asignación

 fun main(args: Array) ( var number = 12 number *= 5 // number = number*5 println("number = $number") )

Cuando ejecute el programa, la salida será:

 número = 60

Lectura recomendada: sobrecarga de operadores de asignación en Kotlin.

3. Operadores de prefijo unario y de incremento / decremento

Here's a table of unary operators, their meaning, and corresponding functions:

Operator Meaning Expression Translates to
+ Unary plus +a a.unaryPlus()
- Unary minus (inverts sign) -a a.unaryMinus()
! not (inverts value) !a a.not()
++ Increment: increases value by1 ++a a.inc()
-- Decrement: decreases value by 1 --a a.dec()

Example: Unary Operators

 fun main(args: Array) ( val a = 1 val b = true var c = 1 var result: Int var booleanResult: Boolean result = -a println("-a = $result") booleanResult = !b println("!b = $booleanResult") --c println("--c = $c") )

When you run the program, the output will be:

 -a = -1 !b = false --c = 0

Recommended Reading: Overloading Unary Operators

4. Comparison and Equality Operators

Here's a table of equality and comparison operators, their meaning, and corresponding functions:

Operator Meaning Expression Translates to
> greater than a> b a.compareTo(b)> 0
< less than a < b a.compareTo(b) < 0
>= greater than or equals to a>= b a.compareTo(b)>= 0
<= less than or equals to a < = b a.compareTo(b) <= 0
== is equal to a == b a?.equals(b) ?: (b === null)
!= not equal to a != b !(a?.equals(b) ?: (b === null))

Comparison and equality operators are used in control flow such as if expression , when expression , and loops .

Example: Comparison and Equality Operators

 fun main(args: Array) ( val a = -12 val b = 12 // use of greater than operator val max = if (a> b) ( println("a is larger than b.") a ) else ( println("b is larger than a.") b ) println("max = $max") ) 

When you run the program, the output will be:

 b is larger than a. max = 12 

Recommended Reading: Overloading of Comparison and Equality Operators in Kotlin

5. Logical Operators

There are two logical operators in Kotlin: || and &&

Here's a table of logical operators, their meaning, and corresponding functions.

Operator Description Expression Corresponding Function
|| true if either of the Boolean expression is true (a>b)||(a (a>b)or(a
&& true if all Boolean expressions are true (a>b)&&(a (a>b)and(a

Note that, or and and are functions that support infix notation.

Logical operators are used in control flow such as if expression , when expression , and loops .

Example: Logical Operators

 fun main(args: Array) ( val a = 10 val b = 9 val c = -1 val result: Boolean // result is true is a is largest result = (a>b) && (a>c) // result = (a>b) and (a>c) println(result) )

When you run the program, the output will be:

 true

Recommended Reading: Overloading of Logical Operators in Kotlin

6. in Operator

The in operator is used to check whether an object belongs to a collection.

Operator Expression Translates to
in a in b b.contains(a)
!in a !in b !b.contains(a)

Example: in Operator

 fun main(args: Array) ( val numbers = intArrayOf(1, 4, 42, -3) if (4 in numbers) ( println("numbers array contains 4.") ) )

When you run the program, the output will be:

 numbers array contains 4.

Recommended Reading: Kotlin in Operator Overloading

7. Index access Operator

Here are some expressions using index access operator with corresponding functions in Kotlin.

Expression Translated to
a(i) a.get(i)
a(i, n) a.get(i, n)
a(i1, i2,… , in) a.get(i1, i2,… , in)
a(i) = b a.set(i, b)
a(i, n) = b a.set(i, n, b)
a(i1, i2,… , in) = b a.set(i1, i2,… , in, b)

Example: Index access Operator

 fun main(args: Array) ( val a = intArrayOf(1, 2, 3, 4, - 1) println(a(1)) a(1)= 12 println(a(1)) ) 

When you run the program, the output will be:

 2 12

Recommended Reading: Kotlin Index access operator Overloading

8. Invoke Operator

Aquí hay algunas expresiones que usan el operador de invocación con las funciones correspondientes en Kotlin.

Expresión Traducido a
a() a.invoke()
a(i) a.invoke(i)
a(i1, i2,… , in) a.inkove(i1, i2,… , in)
a(i) = b a.set(i, b)

En Kotlin, los paréntesis se traducen para llamar a la invokefunción miembro.

Lectura recomendada: Invocar la sobrecarga del operador en Kotlin

Operación bit a bit

A diferencia de Java, no hay operadores bit a bit ni de desplazamiento de bits en Kotlin. Para realizar esta tarea, se utilizan varias funciones (que admiten la notación infija):

  • shl - Cambio firmado a la izquierda
  • shr - Cambio firmado a la derecha
  • ushr - Cambio sin firmar a la derecha
  • and - Bit a bit y
  • or - Bit a bit o
  • xor - xor bit a bit
  • inv - Inversión bit a bit

Visite esta página para obtener más información sobre las operaciones bit a bit en Kotlin.

Además, no existe un operador ternario en Kotlin a diferencia de Java.

Articulos interesantes...