# Kotlin (langage)

Kotlin est un langage de programmation orienté objet et fonctionnel, avec un typage statique qui permet de compiler pour la machine virtuelle Java, JavaScript, et vers plusieurs plateformes en natif (grâce à LLVM). Son développement provient principalement d'une équipe de programmeurs chez JetBrains basée à Saint-Pétersbourg en Russie (son nom vient de l'île de Kotline, près de St. Pétersbourg).
Google annonce pendant la conférence Google I/O 2017 que Kotlin devient le second langage de programmation officiellement pris en charge par Android après Java. Le 8 mai 2019, toujours lors de la conférence Google I/O, Kotlin devient officiellement le langage de programmation voulu et recommandé par le géant américain Google pour le développement des applications Android.
Pivotal Software annonce le 4 janvier 2017 le support officiel de Kotlin sur la cinquième version du Framework Spring.

## Les variables

En Kotlin, il existe deux sortes de variables :
* Les variables immuables : Ce sont des variables dont la valeur ne peut pas être modifiée après l'initialisation (première affectation) ; elles sont semblables aux variables déclarées final en Java.
* Les variables modifiables : Ce sont des variables dont la valeur peut changer lors de l'exécution du programme.
Syntaxe Variable immuable : Pour déclarer une variable immuable, on utilise le mot clé val suivi du nom de la variable, qui peut à son tour être suivi de deux points et du type, de l'opérateur d'affectation, et enfin de la valeur :
Exemple de code qui affiche en console les informations d'un utilisateur enregistré dans une application :
Syntaxe Variable modifiable : Pour déclarer une variable modifiable, on utilise le mot clé var suivi du nom de la variable, qui peut à son tour être suivi de deux points et du type, de l'opérateur d'affectation, et enfin de la valeur.
Dans cet exemple de code, nous avons créé deux variables de type Int et nous avons additionné leurs valeurs ; le résultat ainsi obtenu a été mis dans la variable somme de type Int également.
Dans l'instruction d'affichage (println) nous avons utilisé l'interpolation "${variable} " qui permet de concaténer les valeurs avec les chaines de caractères à afficher en console.

## Les Types de données en Kotlin

Kotlin est un langage de programmation statiquement typé, ce qui signifie que chaque variable doit avoir un type connu au moment de la compilation. Voici les principaux types de données de base que vous rencontrerez en Kotlin :

### Types de base

* Entiers
** Int : Représente un entier signé de 32 bits. Plage : -2,147,483,648 à 2,147,483,647
** Long : Représente un entier signé de 64 bits. Plage : -9,223,372,036,854,775,808 à 9,223,372,036,854,775,807.
* Flottants
** Float : Représente un nombre à virgule flottante de 32 bits. Utilisé pour des valeurs avec moins de précision.

## Les conditions
### If

Le if en Kotlin fonctionne de la même manière que celui en Java.
Exemple :
Notes :
* Ici, nous avons déclaré les variables entier1 et entier2 de type Int.
* Nous avons également déclaré une variable de type Int nommée plusPetit dans laquelle on affectera la valeur de la variable entier1 ou entier2 qui sera la plus petite.
* L'instruction if permet de vérifier laquelle des deux variables est la plus petite, puis affecte sa valeur à la variable plusPetit. L'initialisation peut également être faite en une seule expression : val plusPetit :Int = if (entier1<entier2) entier1 else entier2

### When

L'exemple plus haut présente la forme de when similaire à l'instruction switch d'autres langages. En l'occurrence elle peut aussi être utilisée comme une expression :

## Les boucles
### While

La boucle while en Kotlin fonctionne comme celle en Java. Le while sert à répéter une instruction tant qu'une condition est vraie.
Exemple de code :
Note : Nous déclarons la variable entier de type Int à laquelle on affecte la valeur 5, puis on entre dans la boucle qui sera exécutée jusqu'à ce que la variable entier soit inférieur ou égal à 0.

### Do-While

Pour comprendre le fonctionnement de cette boucle en Kotlin, il suffit de penser qu'elle exécute une instruction avant de vérifier la condition et c'est cette instruction qui se répète aussi longtemps que la condition est vraie :
Exemple de code :

### Repeat

La fonction repeat permet de répéter une instruction un certain nombre de fois :
Exemple de code :
ou (avec indice automatique) :

### For

Pour comprendre le fonctionnement de cette boucle en Kotlin, il suffit de se rappeler que la boucle for est une boucle qui a un index ou un itérateur et qui s'exécute autant de fois que l'on a spécifié de répétition.
Exemple de code :
Note : Il est important de noter que la boucle for dans Kotlin ne doit pas être confondue avec la boucle for dans Java ou C#, mais doit être plutôt assimilée à la boucle foreach.