Kotlini operaatorid: aritmeetika, määranguoperaator ja palju muud

Kotlinil on aritmeetika, määrangu, võrdlusoperaatorite ja muu täitmiseks operaatorite komplekt. Selles artiklis õpitakse neid operaatoreid kasutama.

Operaatorid on spetsiaalsed sümbolid (tähemärgid), mis teostavad operante (muutujad ja väärtused). Näiteks +on operaator, kes teostab liitmist.

Artiklis Java muutujad õppisite muutujaid deklareerima ja muutujaile väärtusi määrama. Nüüd saate teada, kuidas operaatorid teevad nendega erinevaid toiminguid.

1. Aritmeetikaoperaatorid

Siin on Kotlini aritmeetikaoperaatorite loend:

Kotlini aritmeetikaoperaatorid
Operaator Tähendus
+ Lisa (kasutatakse ka stringide liitmiseks)
- Lahutamise operaator
* Korrutamise operaator
/ Jaoskonna operaator
% Modulioperaator

Näide: Aritmeetikaoperaatorid

 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") ) 

Programmi käivitamisel on väljund järgmine:

 number1 + number2 = 16,0 number1 - arv2 = 9,0 number1 * arv2 = 43,75 number1 / number2 = 3,5714285714285716 number1% arv2 = 2,0

+Operaator kasutatakse ka konkatenatsioon Stringväärtusi.

Näide: stringide liitmine

 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) )

Programmi käivitamisel on väljund järgmine:

Rääkimine on odav. Näita mulle koodi. - Linus Torvalds

Kuidas aritmeetikaoperaatorid tegelikult töötavad?

Oletame, et kasutate +kahe numbri a ja b lisamiseks aritmeetilist operaatorit.

Kapoti all a + bkutsub väljend liikmefunktsiooni a.plus(b). plusOperaator on ülekoormatud töö Stringväärtuste ja muude lähteandmete tüübid (va Char ja Boolean).

 // + põhitüüpide operaator operaator lõbus pluss (muu: bait): keskmine operaatori lõbus pluss (muu: lühike): keskmine operaatori lõbus pluss (muu: keskmine): keskmine operaatori lõbus pluss (muu: pikk): pikk operaatori lõbus pluss (muu: ujuk): ujukioperaatori lõbus pluss (muu: kahekordne): kahekordne // stringide liitmise operaatori lõbuks String? .plus (muu: mõni?): string 

+Operaatori abil saate plus()funktsiooni ülekoormuse abil töötada ka kasutaja määratletud tüüpidega (nagu objektid) .

Soovitatav lugemine: Kotlini operaatori ülekoormus

Siin on aritmeetiliste operaatorite ja neile vastavate funktsioonide tabel:

Väljendus Funktsiooni nimi Tõlgib
a + b pluss a. pluss (b)
a - b miinus a. miinus (b)
a * b korda a. korda (b)
a / b div a.div (b)
a% b mod a.mod (b)

2. Ülesandeoperaatorid

Muutujale väärtuse määramiseks kasutatakse määranguoperaatoreid. Oleme juba varem lihtsat määranguoperaatorit kasutanud =.

 vanus = 5

Siin määratakse =operaatori abil muutuvale vanusele 5 .

Siin on loetelu kõigist määranguoperaatoritest ja neile vastavatest funktsioonidest:

Väljendus Samaväärne Tõlgib
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)

Näide: ülesandeoperaatorid

 fun main(args: Array) ( var number = 12 number *= 5 // number = number*5 println("number = $number") )

Programmi käivitamisel on väljund järgmine:

 arv = 60

Soovitatav lugemine: Kotlini ülesandeoperaatorite ülekoormamine.

3. Unary eesliide ja kasvu- / kahanemisoperaatorid

Siin on tabel ühetaolistest operaatoritest, nende tähendusest ja vastavatest funktsioonidest:

Operaator Tähendus Väljendus Tõlgib
+ Unary pluss + a a.unaryPlus ()
- Unaarne miinus (pöördmärk) -a a. unaryMinus ()
! mitte (pöördväärtus) ! a a.not ()
++ Inkrement: suurendab väärtust 1 võrra ++ a a.inc ()
- Vähendamine: vähendab väärtust 1 võrra --a a.dets ()

Näide: Unary Operaatorid

 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") )

Programmi käivitamisel on väljund järgmine:

 -a = -1 !b = false --c = 0

Soovitatav lugemine: Unary operaatorite ülekoormamine

4. Võrdlus- ja võrdõiguslikkuse operaatorid

Siin on võrdõiguslikkuse ja võrdlusoperaatorite tabel, nende tähendus ja vastavad funktsioonid:

Operaator Tähendus Väljendus Tõlgib
> suurem kui a> b a. võrdlus (b)> 0
< vähem kui a <b a. võrdlus (b) <0
> = suurem või võrdne a> = b a. võrdlus (b)> = 0
<= väiksem või võrdne a <= b a. võrdlus (b) <= 0
== on võrdne a == b a?. võrdub (b)?: (b === null)
! = pole võrdne 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

Siin on mõned väljendid, mis kasutavad Kotlinis vastavate funktsioonidega invokeerimisoperaatorit.

Väljendus Tõlgitud keelde
a() a.invoke()
a(i) a.invoke(i)
a(i1, i2,… , in) a.inkove(i1, i2,… , in)
a(i) = b a.set(i, b)

Kotlinis tõlgitakse sulgudes kõneliikme invokefunktsioon.

Soovitatav lugemine: kutsuge operaatori ülekoormust Kotlinis

Bitipõhine töö

Erinevalt Java-st pole Kotlinis bitikiiruse ja bitshift-operaatorit. Nende ülesannete täitmiseks kasutatakse mitmesuguseid funktsioone (toetades infiksi tähistamist):

  • shl - Allkirjastatud nihe vasakule
  • shr - Allkirjastatud nihe paremale
  • ushr - allkirjastamata nihe paremale
  • and - Bititi ja
  • or - bitipidi või
  • xor - bitipidi xor
  • inv - Pisipöördumine

Külasta seda lehte, et saada lisateavet Bitlini operatsioonide kohta Kotlinis.

Samuti pole Kotlinis erinevalt Java-st kolmekomponentset operaatorit.

Huvitavad Artiklid...