Kotlin-operators: rekenkunde, toewijzingsoperator en meer

Kotlin heeft een reeks operatoren om rekenkundige, toewijzings-, vergelijkingsoperatoren en meer uit te voeren. In dit artikel leert u deze operators gebruiken.

Operatoren zijn speciale symbolen (tekens) die bewerkingen uitvoeren op operanden (variabelen en waarden). Is bijvoorbeeld +een operator die optellen uitvoert.

In het artikel Java-variabelen hebt u geleerd variabelen te declareren en waarden aan variabelen toe te wijzen. Nu leert u hoe u operators kunt gebruiken om er verschillende bewerkingen op uit te voeren.

1. Rekenkundige operatoren

Hier is een lijst met rekenkundige operatoren in Kotlin:

Kotlin rekenkundige operatoren
Operator Betekenis
+ Optellen (ook gebruikt voor aaneenschakeling van tekenreeksen)
- Operator voor aftrekken
* Vermenigvuldigingsoperator
/ Divisie Operator
% Modulus-operator

Voorbeeld: rekenkundige operatoren

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

Wanneer u het programma uitvoert, is de uitvoer:

 getal1 + getal2 = 16,0 getal1 - getal2 = 9,0 getal1 * getal2 = 43,75 getal1 / getal2 = 3,5714285714285716 getal1% getal2 = 2,0

De +operator wordt ook gebruikt voor het samenvoegen van Stringwaarden.

Voorbeeld: aaneenschakeling van strings

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

Wanneer u het programma uitvoert, is de uitvoer:

Praten is goedkoop. Laat me de code zien. - Linus Torvalds

Hoe werken rekenkundige operatoren eigenlijk?

Stel dat u een +rekenkundige operator gebruikt om twee getallen a en b op te tellen.

Onder de motorkap a + broept de uitdrukking de ledenfunctie op a.plus(b). De plusoperator is overbelast om met Stringwaarden en andere basisgegevenstypen te werken (behalve Char en Boolean).

 // + operator voor basistypen operator fun plus (other: Byte): Int operator fun plus (other: Short): Int operator fun plus (other: Int): Int operator fun plus (other: Long): Long operator fun plus (other: Float): Float operator fun plus (other: Double): Double // voor string concatenation operator fun String? .plus (other: Any?): String 

U kunt de +operator ook gebruiken om met door de gebruiker gedefinieerde typen (zoals objecten) te werken door de plus()functie te overbelasten .

Aanbevolen literatuur: Overbelasting door Kotlin-operator

Hier is een tabel met rekenkundige operatoren en de bijbehorende functies:

Uitdrukking Functienaam Vertaald naar
a + b plus a.plus (b)
a - b minus a. min (b)
een * b keer a. keer (b)
a / b div a.div (b)
a% b mod a.mod (b)

2. Toewijzingsoperatoren

Toewijzingsoperatoren worden gebruikt om waarde toe te wijzen aan een variabele. We hebben al eerder een eenvoudige toewijzingsoperator gebruikt =.

 val leeftijd = 5

Hier wordt 5 toegewezen aan de variabele leeftijd met behulp van de =operator.

Hier is een lijst met alle toewijzingsoperatoren en hun bijbehorende functies:

Uitdrukking Gelijk aan Vertaald naar
een + = b een = a + b a.plusAssign (b)
een - = b a = a - b a.minusAssign (b)
een * = b a = a * b a.timesAssign (b)
een / = b a = a / b a.divAssign (b)
a% = b a = a% b a.modAssign (b)

Voorbeeld: toewijzingsoperatoren

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

Wanneer u het programma uitvoert, is de uitvoer:

 getal = 60

Aanbevolen literatuur: overbelastingsoperatoren in Kotlin.

3. Unaire prefix en verhogings- / verlagingsoperatoren

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

Hier zijn enkele uitdrukkingen die gebruik maken van de aanroepoperator met overeenkomstige functies in Kotlin.

Uitdrukking Vertaald naar
a() a.invoke()
a(i) a.invoke(i)
a(i1, i2,… , in) a.inkove(i1, i2,… , in)
a(i) = b a.set(i, b)

In Kotlin worden haakjes vertaald om lidfunctie aan te roepen invoke.

Aanbevolen literatuur: Roep overbelasting door operator in Kotlin aan

Bitsgewijze bewerking

In tegenstelling tot Java zijn er geen bitwise en bitshift-operators in Kotlin. Om deze taak uit te voeren, worden verschillende functies (ondersteunende tussenvoegselnotatie) gebruikt:

  • shl - Gesigneerde shift links
  • shr - Gesigneerde shift rechts
  • ushr - Ongetekende verschuiving naar rechts
  • and - Bitwise en
  • or - Bitsgewijs of
  • xor - Bitsgewijze xor
  • inv - Bitsgewijze inversie

Bezoek deze pagina voor meer informatie over Bitwise Operations in Kotlin.

Er is ook geen ternaire operator in Kotlin in tegenstelling tot Java.

Interessante artikelen...