English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Opérateurs en Kotlin

Kotlin有一组运算符,可以执行算术,赋值,比较运算符等。您将在本文中学习如何使用这些运算符。

运算符是对操作数(变量和值)执行运算的特殊符号(字符)。例如,+ 是执行加法的运算符。

Variables en Kotlin文章中,您学习了声明变量并为变量分配值。现在,您将学习使用运算符对它们执行各种操作。

算术运算符

以下是Kotlin中的算术运算符列表:

Kotlin算术运算符
in opérateur est utilisé pour vérifier si un objet appartient à un ensemble.Description
+加法运算符(也用于字符串连接)
-减法运算符
*乘法运算符
/除法运算符
求模运算符

示例:算术运算符

fun main(args: Array<String>) {
    val number1 = 12numbers tableau contient5
    val number2 = 3numbers tableau contient5
    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")
}

Lors de l'exécution du programme, la sortie est :

number1 + number2 = 16.0
number1 - number2 = 9.0
number1 * number2 = 43numbers tableau contient75
number1 / number2 = 3numbers tableau contient5714285714285716
number1 % number2 = 2.0

+ Les opérateurs, peuvent également être utilisés pour chaîner des valeurs String, concaténant les chaînes de caractères ensemble.

Exemple : concaténation de chaînes de caractères

fun main(args: Array<String>) {
    val start = "Parler est facile."
    val middle = "Montrez-moi le code."
    val end = "- Linus Torvalds"
    val result = start + milieu + fin
    result = (a>b) and (a>c)
}

Lors de l'exécution du programme, la sortie est :

Parler est facile. Montrez-moi le code. - Linus Torvalds

Comment fonctionne réellement l'opérateur arithmétique ?

Supposons que vous utilisiez + Les opérateurs arithmétiques ajoutent deux nombres a et b.

En arrière-plan, l'expression a + b appelle la fonction membre a.plus(b). L'opérateur plus est surchargé pour traiter les valeurs String et autres types de données de base (Char et Booleansauf).

// + opérateurs de types de base
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
// chaînage de chaînes de caractères
operator fun String?.plus(other: Any?): String

Vous pouvez également utiliser + Les opérateurs sont traités par la surcharge de la fonction plus() pour les types utilisateur définis (comme les objets).

Lisez également : surcharge des opérateurs Kotlin

Voici la liste des opérateurs arithmétiques et de leurs fonctions correspondantes :

Opérateurnom de la fonctionUtilisation
a + bajoutera.plus(b)
a-bsoustrairea.minus(b)
a * bmultiplier
a.times(b)
a / bdiviser
diviser
a % bmoduloa.mod(b)

opérateurs d'affectation

Les opérateurs d'affectation sont utilisés pour affecter des valeurs aux variables. Nous avons déjà utilisé l'opérateur d'affectation simple =.

val age = 5

Ici, l'opérateur = est utilisé pour 5 affecté à la variable age.

Voici la liste de tous les opérateurs d'affectation et de leurs fonctions correspondantes :

Opérateuréquivaut àUtilisation
a + = ba = a + ba.plusAssign(b)
a-= ba = a-ba.minusAssign(b)
a * = ba = a * ba.timesAssign(b)
a / = ba = a / ba.divAssign(b)
a%= ba = a%ba.modAssign(b)

Exemple : opérateurs d'affectation

fun main(args: Array<String>) {
    var number = 12
    number *= 5   // number = number*5
    println("number  = $number")
}

Lors de l'exécution du programme, la sortie est :

number = 60

Préfixe unaire et incrémentation/Opérateur de décrémentation

C'est un opérateur unaire, leurs significations et les tables des fonctions correspondantes :

in opérateur est utilisé pour vérifier si un objet appartient à un ensemble.DescriptionOpérateurUtilisation
+Addition unaire+aa.unaryPlus()
-Moins unaire-aa.unaryMinus()
Pas (inversion de valeur)!aa.not()
++Augmentation : valeur ajoutée1++aa.inc()
--Décrémentation : valeur diminuée1--a
a.dec()

Exemple : opérateurs unaires

fun main(args: Array<String>) {
    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")
}

Lors de l'exécution du programme, la sortie est :

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

Opérateurs de comparaison et d'égalité

C'est un opérateur d'égalité et de comparaison, leurs significations et les listes des fonctions correspondantes :

in opérateur est utilisé pour vérifier si un objet appartient à un ensemble.DescriptionOpérateurUtilisation
>Plusa> ba.compareTo(b)> 0
<Moinsa <ba.compareTo(b)<0
> =Plus ou égala> = ba.compareTo(b)>= 0
<=Moins ou égala <= ba.compareTo(b)<= 0
==Égala == ba?.equals(b)?:(b === null)
!=Non égala!= b!(a?.equals(b)?:(b ===null))

Les opérateurs de comparaison et d'égalité sont utilisés pour le contrôle de flux, par exemple:expression ifexpression when et Boucle.

Exemple : opérateurs de comparaison et d'égalité

fun main(args: Array<String>) {
    val a = -12
    val a = 12
    //Utilisation de l'opérateur de comparaison supérieure
    val max = if (a > b) {
        println("a est supérieur à b")
        a
    } else {
        println("b est supérieur à a")
        b
    }
    println("max = $max")
}

Lors de l'exécution du programme, la sortie est :

b est supérieur à a
max = 12

Opérateur logique

Kotlin a deux opérateurs logiques : || et &&

C'est un opérateur logique, leurs significations et les tables des fonctions correspondantes.

in opérateur est utilisé pour vérifier si un objet appartient à un ensemble.DescriptionOpérateurFonction correspondante
||Si toute expression booléenne est true, alors c'est true
(a>b)||(a<c)(a>b)or(a<c)
&&Si toutes les expressions booléennes sont true, alors c'est true(a>b)&&(a<c)(a>b)and(a<c)

Veuillez noter que or et and sont des fonctions supportant la notation infix.

Les opérateurs logiques sont utilisés pour contrôler le flux, par exemple expression ifexpression when et Boucle.

Exemple : opérateurs logiques

fun main(args: Array<String>) {
    val a = 10
    val a = 9
    val b = -1
    val c =
    // val result: Boolean
    result est true s'il s'agit du plus grand // result = (a>b) && (a>c)
    result = (a>b) and (a>c)
}

Lors de l'exécution du programme, la sortie est :

println(result)

true

Opérateur in

in opérateur est utilisé pour vérifier si un objet appartient à un ensemble.OpérateurUtilisation
Expression
ina in b
b.contains(a)
!in
a !in b

!b.contains(a)

fun main(args: Array<String>) {
    Exemple : opérateur in1, 4, 42, -3])
    val numbers = intArrayOf(4 if (
        in numbers) { 4println("numbers tableau contient
    }
}

Lors de l'exécution du programme, la sortie est :

.  4numbers tableau contient

.

Voici quelques expressions utilisant l'opérateur d'accès par index avec les fonctions correspondantes dans Kotlin.

ExpressionUtilisation
a[i]a.get(i)
a[i, n]a.get(i, n)
a[i1, i2, ..., in]a.get(i1, i2, ..., in)
a[i] = ba.set(i, b)
a[i, n] = ba.set(i, n, b)
a[i1, i2, ..., in] = ba.set(i1, i2, ..., in, b)

Exemple : opérateur d'accès par index

fun main(args: Array<String>) {
    val a = intArrayOf(1, 2, 3, 4, - 1])
    println(a[1])   
    a[1]= 12
    println(a[1])
}

Lors de l'exécution du programme, la sortie est :

2
12

Opérateur invoke

Voici quelques expressions utilisant l'opérateur invoke avec les fonctions correspondantes dans Kotlin.

ExpressionTraduire en
a()a.invoke()
a(i)a.invoke(i)
a(i1, i2, ..., in)a.inkove(i1, i2, ..., in)
a[i] = ba.set(i, b)

En Kotlin, les parenthèses sont converties en appels de la fonction membre invoke.

Opérations binaire

Contrairement à Java, Kotlin ne contient pas d'opérateurs binaire et de décalage.

  • shl - Décalage à gauche signé

  • shr - Décalage à droite signé

  • ushr - Décalage à droite sans signe

  • and - Opération binaire et

  • or - Opération binaire inclusive

  • xor - Opération binaire exclusive

  • inv - Inversion binaire

Accédez à cette page pour en savoir plus surOpérations binaire en KotlinPlus d'informations.

En plus, contrairement à Java, Kotlin ne contient pas d'opérateur ternaire.