English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Operadores en Kotlin

Kotlin tiene un conjunto de operadores que pueden realizar operaciones aritméticas, de asignación, comparación, etc. Aprenderás a usar estos operadores en este artículo.

Los operadores son símbolos especiales (caracteres) que realizan operaciones en operandos (variables y valores). Por ejemplo,+ es el operador que realiza la adición.

enVariables en KotlinEn el artículo, aprendiste a declarar variables y asignarles valores. Ahora, aprenderás a realizar diversas operaciones con ellos utilizando operadores.

Operadores aritméticos

A continuación, se muestra la lista de operadores aritméticos en Kotlin:

Operadores aritméticos de Kotlin
in operador se utiliza para verificar si un objeto pertenece a una colección.descripción
+Operador de adición (también utilizado para la unión de cadenas)
-Operador de sustracción
*Operador de multiplicación
/Operador de división
Operador de módulo

Ejemplo: Operadores aritméticos

fun main(args: Array<String>) {
    val número1 = 12numbers array contiene5
    val número2 = 3numbers array contiene5
    var result: Double
    result = número1 + number2
    println("número1 + number2 = $result)
    result = número1 - number2
    println("número1 - number2 = $result)
    result = número1 * number2
    println("número1 * number2 = $result)
    result = número1 / number2
    println("número1 / number2 = $result)
    result = número1 % número2
    println("número1 % número2 = $result)
}

Al ejecutar el programa, la salida es:

number1 + number2 = 16.0
number1 - number2 = 9.0
number1 * number2 = 43numbers array contiene75
number1 / number2 = 3numbers array contiene5714285714285716
number1 % número2 = 2.0

+ Los operadores, también se pueden usar para concatenar valores de String, uniendo cadenas.

Ejemplo: concatenación de cadenas

fun main(args: Array<String>) {
    val start = "Talk is cheap."
    val middle = "Show me the code."
    val end = "- Linus Torvalds"
    val result = start + medio + fin
    result = (a>b) and (a>c)
}

Al ejecutar el programa, la salida es:

Hablar es fácil. Muéstrame el código. - Linus Torvalds

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

Supongamos que estás usando + Los operadores aritméticos suman dos números a y b.

detrás de escena, la expresión a + b llama al miembro de la función a.plus(b). El operador plus se sobrecarga para manejar valores de String y otros tipos de datos básicos (Char Y Booleanexcepto).

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

También puedes usar + Los operadores se manejan a través de la sobrecarga de la función plus() para tipos de usuario definidos (como objetos).

Recomendado para leer: Sobrecarga de operadores Kotlin

Esta es una lista de operadores aritméticos y sus funciones correspondientes:

OperadorNombre de la funciónUso
a + bsumarsumar
a-brestarrestar
a * bmultiplicar
multiplicar
a / bdividir
dividir
a % bmóduloa.módulo(b)

operadores de asignación

Los operadores de asignación se utilizan para asignar valores a variables. Ya hemos utilizado el operador de asignación simple =.

val age = 5

Aquí, se utiliza el operador = para asignar 5 asignado al variable age.

A continuación, se muestra una lista de todos los operadores de asignación y sus funciones correspondientes:

Operadorequivalente aUso
a + = ba = a + ba.sumarAsignar(b)
a-= ba = a-ba.restarAsignar(b)
a * = ba = a * ba.assignedMultiplication(b)
a / = ba = a / ba.asignar(b)
a%= ba = a%ba.modAssign(b)

ejemplo: operadores de asignación

fun main(args: Array<String>) {
    var number = 12
    number *= 5   // number = number*5
    println("number  = $number")
}

Al ejecutar el programa, la salida es:

number = 60

prefijo unario y aumento/operador de disminución

Esto es un operador unario, su significado y la tabla de la función correspondiente:

in operador se utiliza para verificar si un objeto pertenece a una colección.descripciónOperadorUso
+adición unitaria+aa.unaryPlus()
-reducción unitaria-aa.unaryMinus()
no es (inversión de valor)!aa.not()
++aumento: valor añadido1++aa.inc()
--disminución: valor restado1--a
a.dec()

ejemplo: operadores unarios

fun main(args: Array<String>) {
    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")
}

Al ejecutar el programa, la salida es:

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

operadores de comparación y de igualdad

Esto es un operador de igualdad y comparación, su significado y la lista de funciones correspondientes:

in operador se utiliza para verificar si un objeto pertenece a una colección.descripciónOperadorUso
>mayora> ba.compareTo(b)> 0
<menora <ba.compareTo(b)<0
> =mayor o iguala> = ba.compareTo(b)>= 0
<=menor o iguala <= ba.compareTo(b)<= 0
==iguala == ba?.equals(b)?:(b === null)
!=no iguala!= b!(a?.equals(b)?:(b ===null))

Los operadores de comparación e igualdad se utilizan en el flujo de control, por ejemplo:expresión ifExpresión when Y Bucle.

ejemplo: operadores de comparación y igualdad

fun main(args: Array<String>) {
    val a = -12
    val a = 12
    //usar el operador de comparación mayor
    val max = if (a > b) {
        println("a es mayor que b")
        a
    } else {
        println("b es mayor que a")
        b
    }
    println("max = $max")
}

Al ejecutar el programa, la salida es:

b es mayor que a
max = 12

operador lógico

Kotlin tiene dos operadores lógicos: || y &&

Esto es un operador lógico, su significado y la tabla de la función correspondiente.

in operador se utiliza para verificar si un objeto pertenece a una colección.descripciónOperadorcorrespondiente función
||Si alguna expresión booleana es verdadera,则为true
(a>b)||(a<c)(a>b)or(a<c)
&&Si todas las expresiones booleanas son true,则为true(a>b)&&(a<c)(a>b)and(a<c)

Tenga en cuenta que or y and son funciones que admiten notación infixa.

Los operadores lógicos se utilizan para controlar el flujo, por ejemplo Expresión ifExpresión when Y Bucle.

Ejemplo: operadores lógicos

fun main(args: Array<String>) {
    val a = 10
    val a = 9
    val b = -1
    val c =
    // val result: Boolean
    result es true si es el mayor // result = (a>b) && (a>c)
    result = (a>b) and (a>c)
}

Al ejecutar el programa, la salida es:

println(result)

true

Operador in

in operador se utiliza para verificar si un objeto pertenece a una colección.OperadorUso
Expresión
ina in b
b.contains(a)
!in
a !in b

!b.contains(a)

fun main(args: Array<String>) {
    Ejemplo: operador in1, 4, 42, -3])
    val numbers = intArrayOf(4 if (
        in numbers) { 4println("numbers array contiene
    }
}

Al ejecutar el programa, la salida es:

."  4numbers array contiene

.

A continuación se presentan algunas expresiones que utilizan el operador de acceso por índice con funciones correspondientes en Kotlin.

ExpresiónUso
a[i]a.get(i)
a[i, n]a.get(i, n)
a[i1, i2, ..., in]a.get(i1, i2, ..., in)
a[i] = ba.set(i, b)
a[i, n] = ba.set(i, n, b)
a[i1, i2, ..., in] = ba.set(i1, i2, ..., in, b)

Ejemplo: operador de acceso por índice

fun main(args: Array<String>) {
    val a = intArrayOf(1, 2, 3, 4, - 1])
    println(a[1])   
    a[1]= 12
    println(a[1])
}

Al ejecutar el programa, la salida es:

2
12

Operador invoke

A continuación se presentan algunas expresiones que utilizan el operador invoke con funciones correspondientes en Kotlin.

ExpresiónTraducido a
a()a.invoke()
a(i)a.invoke(i)
a(i1, i2, ..., in)a.inkove(i1, i2, ..., in)
a[i] = ba.set(i, b)

En Kotlin, los corchetes se convierten en la llamada a la función miembro invoke.

Operaciones bitwise

A diferencia de Java, Kotlin no tiene operadores bitwise y de desplazamiento. Para realizar estas tareas, se utilizan varias funciones (soporte para símbolos infix):

  • shl - Desplazamiento a la izquierda con signo

  • shr - Desplazamiento a la derecha con signo

  • ushr - Desplazamiento a la derecha sin signo

  • and - AND bitwise

  • or - OR bitwise

  • xor - XOR bitwise

  • inv - Inversión bitwise

Acceda a esta página para obtener información sobreOperaciones bitwise en KotlinMás información.

Además, a diferencia de Java, Kotlin no tiene operador ternario.