Kotlin operaterji: aritmetika, operater dodelitve in še več

Kotlin ima nabor operaterjev za izvajanje aritmetičnih, dodelitvenih, primerjalnih operaterjev in še več. Uporabe teh operatorjev se boste naučili v tem članku.

Operatorji so posebni simboli (znaki), ki izvajajo operacije nad operandi (spremenljivke in vrednosti). Na primer, +je operater, ki izvaja seštevanje.

V članku o spremenljivkah Java ste se naučili deklarirati spremenljivke in spremenljivkam dodeliti vrednosti. Zdaj se boste naučili uporabljati operaterje, ki z njimi izvajajo različne operacije.

1. Aritmetični operatorji

Tu je seznam aritmetičnih operatorjev v Kotlinu:

Kotlin Aritmetični operaterji
Operater Pomen
+ Dodatek (uporablja se tudi za združevanje nizov)
- Operator odštevanja
* Operator množenja
/ Operater oddelka
% Upravljavec modula

Primer: Aritmetični operatorji

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

Ko zaženete program, bo rezultat:

 število1 + število2 = 16,0 število1 - število2 = 9,0 število1 * število2 = 43,75 število1 / število2 = 3,5714285714285716 število1% število2 = 2,0

+Operater se uporablja tudi za splet Stringvrednot.

Primer: Združevanje nizov

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

Ko zaženete program, bo rezultat:

Pogovor je poceni. Pokaži mi kodo. - Linus Torvalds

Kako aritmetični operatorji dejansko delujejo?

Denimo, da z +aritmetičnim operatorjem seštevate dve številki a in b.

Pod pokrovom izraz a + bpokliče a.plus(b)funkcijo člana. plusOperater je preobremenjen z delom z Stringvrednotami in drugih osnovnih podatkovnih tipov (razen Char in logičnim).

 // + operator za osnovne vrste operator plus plus (drugo: Byte): Int operator fun plus (drugo: Kratek): Int operator fun plus (drugo: Int): Int operator fun plus (drugo: Long): Long operator fun plus (drugo: Float): Float operator plus plus (drugo: Double): Double // za operaterja združevanja nizov fun String? .plus (other: Any?): String 

+Operator lahko uporabite tudi za delo z uporabniško določenimi vrstami (na primer predmeti) s plus()funkcijo preobremenitve .

Priporočeno branje: Preobremenitev operaterja Kotlin

Tu je tabela aritmetičnih operatorjev in njihovih ustreznih funkcij:

Izraz Ime funkcije Prevaja v
a + b plus a.plus (b)
a - b minus a.minus (b)
a * b krat a.krat (b)
a / b div a.div (b)
a% b mod a.mod (b)

2. Operaterji dodelitve

Operatorji dodelitve se uporabljajo za dodelitev vrednosti spremenljivki. Preprost operator dodelitve smo že uporabljali =.

 val starost = 5

Tu je 5 uporabniku dodeljena spremenljivi starosti =.

Tu je seznam vseh operaterjev dodelitve in njihovih ustreznih funkcij:

Izraz Enakovreden Prevaja v
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)

Primer: Operatorji dodelitve

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

Ko zaženete program, bo rezultat:

 število = 60

Priporočeno branje: Preobremenitev operaterjev dodelitve v Kotlinu.

3. Operatorji enolične predpone in povečevanja / zmanjšanja

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

Tu je nekaj izrazov, ki uporabljajo operator pozivanja z ustreznimi funkcijami v Kotlinu.

Izraz Prevedeno v
a() a.invoke()
a(i) a.invoke(i)
a(i1, i2,… , in) a.inkove(i1, i2,… , in)
a(i) = b a.set(i, b)

V Kotlinu so oklepaji prevedeni v funkcijo invokečlana klica .

Priporočeno branje: Preklic preobremenitve operaterja v Kotlinu

Bitovno delovanje

Za razliko od Jave v Kotlinu ni bitnih in bitnih premikov. Za izvedbo te naloge se uporabljajo različne funkcije (ki podpirajo zapise z infiksi):

  • shl - Podpisan premik levo
  • shr - Podpisan premik desno
  • ushr - Nepodpisana izmena desno
  • and - Bitno in
  • or - Bitno oz
  • xor - Bitno xor
  • inv - Bitna inverzija

Obiščite to stran, če želite izvedeti več o bitnih operacijah v Kotlinu.

Prav tako v Kotlinu ni nobenega ternarnega operaterja, za razliko od Jave.

Zanimive Članki...