Операторы в Kotlin — это специальные символы, которые выполняют операции над операндами (значениями или переменными). В Kotlin доступны различные типы операторов.
- Арифметический оператор
- Оператор отношения
- Побитовый
Арифметический оператор
Арифметические операторы используются для выполнения основных математических операций, таких как сложение(+), вычитание(-), умножение(*), деление(/) и т. д.
| Оператор | Описание | Выражение | Значение |
|---|---|---|---|
| + | Сложение | a+b | a.plus(b) |
| — | Вычитание | a-b | a.minus(b) |
| * | Умножение | a*b | a.times(b) |
| / | Деление | a/b | a.div(b) |
| % | Модуль | a%b | a.rem(b) |
Пример арифметического оператора:
fun main(args : Array) {
var a=10;
var b=5;
println(a+b);
println(a-b);
println(a*b);
println(a/b);
println(a%b);
}
Выход:
15 5 50 2 0
Оператор отношения
Оператор отношения показывает отношение и сравнивает операнды. Ниже приведены различные реляционные операторы:
| Оператор | Описание | Выражение | Значение |
|---|---|---|---|
| > | больше чем | a>b | a.compateTo(b)>0 |
| < | меньше чем | a<b | a.compateTo(b)<0 |
| >= | больше чем или равно | a>=b | a.compateTo(b)>=0 |
| <= | меньше чем или равно | a<=b | a?.equals(b)?:(b===null) |
| == | равно | a==b | a?.equals(b)?:(b===null) |
| != | не равно | a!=b | !(a?.equals(b)?:(b===null)) |
Пример логического оператора:
fun main(args : Array<String>) {
val a = 5
val b = 10
val max = if (a > b) {
println("a is greater than b.")
a
} else{
println("b is greater than a.")
b
}
println("max = $max")
}
Выход:
b is greater than a. max = 10
Побитовая операция
В Котлине нет специального побитового оператора. Побитовая операция выполняется с помощью именованной функции.
| Именованная функция | Описание | Выражение |
|---|---|---|
| shl (bits) | подписанный сдвиг влево | a.shl(b) |
| shr (bits) | подписанный сдвиг вправо | a.shr(b) |
| ushr (bits) | беззнаковый сдвиг вправо | a.ushr(b) |
| and (bits) | побитовое и | a.and(b) |
| or (bits | побитовое или | a.or(b) |
| xor (bits) | побитовый xor | a.xor(b) |
| inv() | побитовая инверсия | a.inv() |
Пример побитовой операции:
fun main(args: Array){
var a=10
var b=2
println("a.shl(b): "+a.shl(b))
println("a.shr(b): "+a.shr(b))
println("a.ushr(b:) "+a.ushr(b))
println("a.and(b): "+a.and(b))
println("a.or(b): "+a.or(b))
println("a.xor(b): "+a.xor(b))
println("a.inv(): "+a.inv())
}
Выход:
a.shl(b): 40 a.shr(b): 2 a.ushr(b:) 2 a.and(b): 2 a.or(b): 10 a.xor(b): 8 a.inv(): -11
