Tutoriel sur le langage Kotlin

Introduction (partie 1/4)

Laurent Bernabé

Dans cet article en plusieurs parties, vous allez être initié aux bases du langage Kotlin.

Cet article vise principalement les développeurs étant familiers avec le langage Java et la POO, même si tout langage orienté objet devrait convenir. Je ferai de temps en temps référence à Java pour essayer d’aider à visualiser certains concepts.

La version de Kotlin utilisée lors de l’écriture de l’article était la version 1.3.70.

Voici les différentes parties:

Introduction rapide

Bases de la syntaxe

Fonctions et notions sur les classes

Notions avancées sur les classes et diverses fonctionnalités

Cette première partie présente de manière succincte le langage ainsi que son utilisation dans l’éditeur officiel en ligne.

Pour réagir au contenu de cet article, un espace de dialogue vous est proposé sur le forum. Commentez

- Titre : Tutoriel sur le langage Kotlin

- Auteur : Laurent Bernabé

- Parution : 11 juin 2020

- Public visé :

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2020 Laurent Bernabe. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Avantages du langage Kotlin

- II. Prise en main rapide

- III. Conclusions et remerciements

I - Avantages du langage Kotlin

Le langage Kotlin est un langage open source développé par JetBrains, entreprise conceptrice de l’ EDI IntelliJ Idea entre autres.

Ses principaux avantages, pour reprendre les arguments du site officiel, résident dans :

- la simplification du code pour de nombreuses tâches courantes (par exemple la création de POJO) ;

- une sécurité de code accrue grâce à un contrôle plus strict que Java (notamment pour la nullité des valeurs) ;

- et une facilité d’interaction vers et à partir du langage Java et avec la JVM — ce qui permet notamment la réutilisation directe de la plupart des codes écrits en Java.

Le langage Kotlin est un langage qui a plusieurs déclinaisons :

- une version visant une intégration avec le langage Java, et qui est compilée en bytecode afin d’être exécutée sur la JVM ou sur les périphériques Android ;

- une version visant à être compilée vers JavaScript ;

- une version dite native, visant à être compilée directement en exécutable indépendant de toute plateforme.

Ce tutoriel a pour objectif l’enseignement de la version pour la JVM, même s’il ne devrait pas être ardu de passer à l’une des deux autres versions.

II - Prise en main rapide

Vous pouvez, si vous le souhaitez, tester les différents codes du tutoriel dans l’éditeur en ligne officiel. Il vous permettra, avec une simple connexion, d’organiser plusieurs projets.

À titre d’exemple, nous allons coder une application qui indique la position du mois de l’année donné en argument. La zone pour renseigner les arguments dans l’éditeur se situe au-dessus du code.

Et le bouton d’exécution est le bouton Run au-dessus du code.

L'éditeur en ligne et le bouton run

Les mois de l’année

1. fun positionDuMoisDemande(mois: String) : Int {

2. val positions = mapOf<String, Int>(

3. "Janvier" to 1,

4. "Février" to 2,

5. "Mars" to 3,

6. "Avril" to 4,

7. "Mai" to 5,

8. "Juin" to 6,

9. "Juillet" to 7,

10. "Août" to 8,

11. "Septembre" to 9,

12. "Octobre" to 10,

13. "Novembre" to 11,

14. "Décembre" to 12

15. )

17. if (mois !in positions) throw IllegalArgumentException()

18. return positions[mois]!!

19. }

21. fun main(args: Array<String>) {

22. if (args.size == 0) {

23. println("Il faut préciser le mois en argument !")

24. return

25. }

26. val mois = args[0].trim()

27. try {

28. println("Ce mois est à la position ${positionDuMoisDemande(mois)} dans l'année.")

29. } catch (e: IllegalArgumentException) {

30. println("Ce mois n'existe pas !")

31. }

32. }

Tout d’abord, nous définissons une fonction générale, en lignes 1-19, qui retourne la position en fonction du mois passé en argument.

- Une fonction se déclare avec le mot-clé fun.

- Les arguments de cette fonction se déclarent entre parenthèses, mais avec la syntaxe NomVariable : typeVariable.

- Le type de retour est déclaré après la liste des arguments et le signe deux-points.

- Les types utilisés sont similaires à ceux du langage Java : Int pour un entier, String pour une chaîne de caractères.

- Les points-virgules ne sont pas nécessaires en fin de ligne.

- Tout comme en Java, les mots-clés if et throw s’utilisent simplement (ligne 17)

- Une variable peut se déclarer à l’aide des syntaxes val nomVariable = expression ou var nomVariable = expression. Nous verrons plus tard la nuance entre les deux syntaxes.

- mapOf<String, Int> permet de déclarer de manière aisée un dictionnaire ayant des clés de type String et des valeurs de type Int.

- Nous pouvons ensuite voir que les mots-clés if, throw et return fonctionnent comme en Java. Nous verrons cela plus en détail ultérieurement.

Vient ensuite la fonction nécessaire dans toute application Kotlin version JVM: la fonction main.

- Le paramètre args prend en compte les arguments passés au programme. Il est optionnel.

- C’est l’attribut size, et non length, qui permet de connaître la taille du tableau.

- Pour afficher un message à l’écran, on peut simplement écrire : println(messageAAfficher).

- Il est possible de lever une exception de la même manière qu’en Java.

- Nous pouvons utiliser l’interpolation de chaîne afin de construire simplement une chaîne de caractères (ligne 29). La syntaxe ${expression} permet d’insérer des valeurs à interpréter dans la chaîne.

III - Conclusions et remerciements

Dans cet article, nous avons eu un très rapide aperçu du langage Kotlin.

Dans la prochaine section, nous découvrirons les bases du langage.

Je remercie -FloT- pour la relecture orthographique.

Je remercie également Mickael Baron pour la relecture technique.