Котлин оператери: аритметика, оператер доделе и још много тога

Котлин има скуп оператора за извођење аритметике, оператора доделе, упоређивања и још много тога. У овом чланку ћете научити да користите ове операторе.

Оператори су посебни симболи (знакови) који извршавају операције над операндима (променљиве и вредности). На пример, +је оператор који врши сабирање.

У чланку Јава променљиве научили сте да декларишете променљиве и додељујете вредности променљивим. Сада ћете научити да користите операторе који на њима обављају разне операције.

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 - Битна инверзија

Посетите ову страницу да бисте сазнали више о битовним операцијама у Котлину.

Такође, у Котлину не постоји тернарни оператор за разлику од Јаве.

Занимљиви Чланци...