Kotlin има набор от оператори за извършване на аритметика, оператори за присвояване, сравнение и други. Ще се научите да използвате тези оператори в тази статия.
Операторите са специални символи (символи), които извършват операции върху операнди (променливи и стойности). Например, +е оператор, който извършва добавяне.
В статията за променливи Java научихте да декларирате променливи и да присвоявате стойности на променливи. Сега ще се научите да използвате оператори, които извършват различни операции върху тях.
1. Аритметични оператори
Ето списък на аритметичните оператори в Kotlin:
Котлин аритметични оператори| Оператор | Значение |
|---|---|
| + | Добавяне (използва се и за конкатенация на низове) |
| - | Оператор за изваждане |
| * | Оператор за умножение |
| / | Оператор на дивизия |
| % | Оператор на модула |
Пример: Аритметични оператори
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") )
Когато стартирате програмата, изходът ще бъде:
номер1 + номер2 = 16.0 номер1 - номер2 = 9.0 номер1 * номер2 = 43.75 номер1 / номер2 = 3.5714285714285716 номер1% номер2 = 2.0
На +оператора се използва и за конкатенацията на Stringценности.
Пример: Обединяване на низове
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) )
Когато стартирате програмата, изходът ще бъде:
Разговорите са евтини. Покажи ми кода. - Линус Торвалдс
Как всъщност работят аритметичните оператори?
Да предположим, че използвате +аритметичен оператор, за да добавите две числа a и b.
Под качулката изразът a + bизвиква a.plus(b)член функция. На plusоператора е претоварен с работа с Stringценности и други основни типове данни (с изключение на Char и Boolean).
// + оператор за основни типове оператор fun plus (друго: Байт): Int оператор fun plus (друго: Кратко): Int оператор fun plus (друго: Int): Int оператор fun plus (друго: Long): Long operator fun plus (друго: Float): Float оператор забавно плюс (друго: Double): Double // за оператор за конкатенация на низове fun String? .plus (друго: Any?): String
Можете също да използвате +оператор за работа с дефинирани от потребителя типове (като обекти) чрез plus()функция за претоварване .
Препоръчително четене: Претоварване на оператора Kotlin
Ето таблица на аритметичните оператори и съответните им функции:
| Израз | Име на функцията | Превежда на |
|---|---|---|
| a + b | плюс | a.plus (b) |
| а - б | минус | a.minus (b) |
| a * b | пъти | a. времена (b) |
| а / б | div | a.div (b) |
| a% b | мод | a.mod (b) |
2. Оператори за възлагане
Операторите на присвояване се използват за присвояване на стойност на променлива. Вече използвахме прост оператор за присвояване =.
вал възраст = 5
Тук 5 се присвоява на променлива възраст, използвайки =оператор.
Ето списък на всички оператори за присвояване и съответните им функции:
| Израз | Еквивалентно на | Превежда на |
|---|---|---|
| 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) ( var number = 12 number *= 5 // number = number*5 println("number = $number") )
Когато стартирате програмата, изходът ще бъде:
число = 60
Препоръчително четене: Претоварване на оператори за присвояване в Kotlin.
3. Унарни оператори за префикс и инкремент / декремент
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
Ето някои изрази, използващи оператор за извикване със съответните функции в Kotlin.
| Израз | Преведено на |
|---|---|
a() | a.invoke() |
a(i) | a.invoke(i) |
a(i1, i2,… , in) | a.inkove(i1, i2,… , in) |
a(i) = b | a.set(i, b) |
В Kotlin скобите се превеждат, за да се извика invokeфункция член.
Препоръчително четене: Invoke Operator Overloading в Kotlin
Побитова операция
За разлика от Java, в Kotlin няма битови и битови смени оператори. За изпълнението на тази задача се използват различни функции (поддържащи инфикс нотация):
shl- Подписана смяна налявоshr- Подписана смяна надясноushr- Неподписана смяна надясноand- Побитови иor- Побитово илиxor- Побитово xorinv- Побитова инверсия
Посетете тази страница, за да научите повече за битовите операции в Kotlin.
Също така, в Kotlin няма троичен оператор за разлика от Java.








