English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
O Kotlin possui um conjunto de operadores que podem executar operações aritméticas, de atribuição, operadores de comparação, etc. Você aprenderá a usar esses operadores neste artigo.
Operadores são símbolos especiais (caracteres) que executam operações em operandos (variáveis e valores). Por exemplo,+ é o operador de adição.
emVariáveis no KotlinNeste artigo, você aprendeu a declarar variáveis e atribuir valores a elas. Agora, você aprenderá a usar operadores para executar várias operações nelas.
A seguir está a lista de operadores aritméticos no Kotlin:
Operador | descrição |
---|---|
+ | Operador de adição (também usado para concatenação de strings) |
- | Operador de subtração |
* | Operador de multiplicação |
/ | Operador de divisão |
% | Operador de módulo |
fun main(args: Array<String>) { val número1 = 12.5 val número2 = 3.5 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) }
Quando o programa é executado, a saída é:
number1 + number2 = 16.0 number1 - number2 = 9.0 number1 * number2 = 43.75 number1 / number2 = 3.5714285714285716 number1 % número2 = 2.0
+ Os operadores, também podem ser usados para concatenar valores de String, juntando strings.
fun main(args: Array<String>) { val start = "Talk is cheap." val middle = "Show me the code." val end = "- Linus Torvalds" val result = start + meio + fim println(result) }
Quando o programa é executado, a saída é:
Falar é fácil. Mostre-me o código. - Linus Torvalds
Suponha que você esteja usando + Os operadores aritméticos somam dois números a e b.
Por trás das cenas, a expressão a + b chama o membro da função a.plus(b). O operador plus é sobrecarregado para lidar com valores de String e outros tipos de dados básicos (Char E Booleanexceto).
// + 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 concatenação de strings operator fun String?.plus(other: Any?): String
Você também pode usar + Os operadores são tratados por sobrecarga da função plus() para tipos definidos pelo usuário (como objetos).
Recomendação de leitura: Sobrecarga de operadores Kotlin
Aqui está a lista de operadores aritméticos e suas funções correspondentes:
Expressão | Nome da função | Uso |
---|---|---|
a + b | adicionar | adicionar |
a-b | subtrair | subtrair |
a * b | multiplicar | multiplicar |
a / b | dividir | dividir |
a % b | Módulo | a.mod(b) |
Os operadores de atribuição são usados para atribuir valores a variáveis. Já usamos o operador de atribuição simples = anteriormente.
val age = 5
Aqui, usa-se o operador = para 5 Atribuído ao variável age.
A seguir está a lista de todos os operadores de atribuição e suas funções correspondentes:
Expressão | equivalente a | Uso |
---|---|---|
a + = b | a = a + b | a.plusAssign(b) |
a-= b | a = a-b | a.minusAssign(b) |
a * = b | a = a * b | a.timesAssign(b) |
a / = b | a = a / b | a.divAssign(b) |
a%= b | a = a%b | a.modAssign(b) |
fun main(args: Array<String>) { var number = 12 number *= 5 // number = number*5 println("number = $number") }
Quando o programa é executado, a saída é:
number = 60
Este é o operador unário, cujo significado e tabela de funções correspondentes estão na tabela:
Operador | descrição | Expressão | Uso |
---|---|---|---|
+ | adição unária | +a | a.unaryPlus() |
- | subtração unária | -a | a.unaryMinus() |
! | não (inverter valor) | !a | a.not() |
++ | aumentando: valor aumentado1 | ++a | a.inc() |
-- | decrescendo: valor diminuído1 | --a | a.dec() |
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") }
Quando o programa é executado, a saída é:
-a = -1 !b = false --c = 0
Este é o operador de igualdade e comparação, cujo significado e lista de funções correspondentes estão na tabela:
Operador | descrição | Expressão | Uso |
---|---|---|---|
> | maior | a> b | a.compareTo(b)> 0 |
< | menor | a <b | a.compareTo(b)<0 |
> = | maior ou igual | a> = b | a.compareTo(b)>= 0 |
<= | menor ou igual | a <= b | a.compareTo(b)<= 0 |
== | igual | a == b | a?.equals(b)?:(b === null) |
!= | não igual | a!= b | !(a?.equals(b)?:(b ===null)) |
Os operadores de comparação e igualdade são usados para controle de fluxo, por exemplo:expressão if,Expressão when E Loop.
fun main(args: Array<String>) { val a = -12 val b = 12 //usando o operador maior que val max = if (a > b) { println("a é maior que b") a } else { println("b é maior que a") b } println("max = $max") }
Quando o programa é executado, a saída é:
b é maior que a max = 12
Existem dois operadores lógicos no Kotlin: || e &&
Este é o operador lógico, cujo significado e correspondente função estão na tabela.
Operador | descrição | Expressão | correspondente à função |
---|---|---|---|
|| | Se qualquer expressão booleana for true, então é true | (a>b)||(a<c) | (a>b)or(a<c) |
&& | Se todas as expressões booleanas forem true, então é true | (a>b)&&(a<c) | (a>b)and(a<c) |
Observe que or e and são funções que suportam a notação infixa.
Os operadores lógicos são usados para controle de fluxo, por exemplo Expressão if,Expressão when E Loop.
fun main(args: Array<String>) { val a = 10 val b = 9 val c = -1 val result: Boolean // result é true se todos os expressões booleanas forem true, então é o maior result = (a>b) && (a>c) // result = (a>b) and (a>c) println(result) }
Quando o programa é executado, a saída é:
true
O operador in é usado para verificar se um objeto pertence a um conjunto.
Operador | Expressão | Uso |
---|---|---|
in | a in b | b.contains(a) |
!in | a !in b | !b.contains(a) |
fun main(args: Array<String>) { val numbers = intArrayOf(1, 4, 42, -3]) if (4 in numbers) { println("numbers array contém 4.") } }
Quando o programa é executado, a saída é:
O array numbers contém 4.
A seguir estão algumas expressões usando o operador de acesso por índice com funções correspondentes no Kotlin.
Expressão | Uso |
---|---|
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) |
fun main(args: Array<String>) { val a = intArrayOf(1, 2, 3, 4, - 1]) println(a[1]) a[1]= 12 println(a[1]) }
Quando o programa é executado, a saída é:
2 12
A seguir estão algumas expressões usando o operador invoke com funções correspondentes no Kotlin.
Expressão | Tradução para |
---|---|
a() | a.invoke() |
a(i) | a.invoke(i) |
a(i1, i2, ..., in) | a.inkove(i1, i2, ..., in) |
a[i] = b | a.set(i, b) |
No Kotlin, os parênteses são convertidos para a chamada da função membro invoke.
Diferente do Java, o Kotlin não possui operadores bit a bit e de deslocamento. Para executar essas tarefas, são usadas várias funcionalidades (suportando símbolos infix):
shl - Deslocamento à Esquerda com Sinal
shr - Deslocamento à Direita com Sinal
ushr - Deslocamento à Direita Assinado
and - Operação bit a bit E
or - Operação bit a bit OU
xor - Operação bit a bit XOR
inv - Inversão bit a bit
Acesse esta página para saber mais sobreOperações bit a bit no KotlinMais informações.
Diferente do Java, o Kotlin não possui operador ternário.