Котлин има скуп оператора за извођење аритметике, оператора доделе, упоређивања и још много тога. У овом чланку ћете научити да користите ове операторе.
Оператори су посебни симболи (знакови) који извршавају операције над операндима (променљиве и вредности). На пример, +
је оператор који врши сабирање.
У чланку Јава променљиве научили сте да декларишете променљиве и додељујете вредности променљивим. Сада ћете научити да користите операторе који на њима обављају разне операције.
1. Аритметички оператори
Ево листе аритметичких оператора у Котлину:
Котлин аритметички операториОператор | Значење |
---|---|
+ | Сабирање (користи се и за спајање низова) |
- | Оператор одузимања |
* | Оператор множења |
/ | Дивизиониста |
% | Оператор модула |
Пример: Аритметички оператори
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.plus(b)
функцију члана. plus
Оператер је преоптерећен на рад са String
вредностима и другим основним врстама података (осим Цхар и Боолеан).
// + оператор за основне типове оператор плус (остало: Бајт): Инт оператор фун плус (остало: Кратко): Инт оператор фун плус (остало: Инт): Инт оператор фун плус (остало: Лонг): Лонг оператор фун плус (остало: Флоат): Флоат оператор фун плус (остало: Доубле): Доубле // за забаву оператора спајања низа Стринг? .плус (отхер: Ани?): Стринг
+
Оператор такође можете користити за рад са кориснички дефинисаним типовима (попут објеката) преоптерећењем plus()
функције.
Препоручено читање: Преоптерећење оператера Котлин
Ево табеле аритметичких оператора и њихових одговарајућих функција:
Израз | Назив функције | Преводи се на |
---|---|---|
а + б | плус | а.плус (б) |
а - б | минус | а.минус (б) |
а * б | пута | а.времена (б) |
а / б | див | а.див (б) |
а% б | мод | а.мод (б) |
2. Оператори доделе
Оператори додељивања користе се за додељивање вредности променљивој. Већ смо користили једноставан оператор доделе =
.
вал старост = 5
Овде се 5 додељује променљивој старости помоћу =
оператора.
Ево листе свих оператора доделе и њихових одговарајућих функција:
Израз | Еквивалентно са | Преводи се на |
---|---|---|
а + = б | а = а + б | а.плусАссигн (б) |
а - = б | а = а - б | а.минусАссигн (б) |
а * = б | а = а * б | а.тимесАссигн (б) |
а / = б | а = а / б | а.дивАссигн (б) |
а% = б | а = а% б | а.модАссигн (б) |
Пример: Оператори доделе
fun main(args: Array) ( var number = 12 number *= 5 // number = number*5 println("number = $number") )
Када покренете програм, излаз ће бити:
број = 60
Препоручено читање: Преоптерећење оператора доделе у Котлину.
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
Ево неколико израза који користе оператор позива са одговарајућим функцијама у Котлину.
Израз | Преведено на |
---|---|
a() | a.invoke() |
a(i) | a.invoke(i) |
a(i1, i2,… , in) | a.inkove(i1, i2,… , in) |
a(i) = b | a.set(i, b) |
У Котлину се заграде преводе у invoke
функцију члана позива .
Препоручено читање: Позови преоптерећење оператора у Котлину
Бит-ов рад
За разлику од Јаве, у Котлину не постоје битни и битсхифт оператери. За извршавање овог задатка користе се разне функције (које подржавају инфиксни запис):
shl
- Потписана смена левоshr
- Потписана смена десноushr
- Непотписана смена десноand
- Битни иor
- Битни илиxor
- Битно корinv
- Битна инверзија
Посетите ову страницу да бисте сазнали више о битовним операцијама у Котлину.
Такође, у Котлину не постоји тернарни оператор за разлику од Јаве.