Kotlin est un langage de programmation moderne qui compile en bytecode Java. C'est gratuit et open source, et promet de rendre le codage pour Android encore plus amusant.
Kotlin est 100% interopérable avec Java. En d'autres termes, il peut être utilisé avec Java dans le même projet. Vous pouvez donc refactoriser certaines parties de votre code Java vers Kotlin sans que cela se casse. En plus de cela, il est concis, expressif et doté d'un excellent outillage. Kotlin peut être utilisé sur le back-end (côté serveur), mais il suscite actuellement beaucoup d'attention en tant que langage pour le développement d'applications Android. Kotlin est désormais pris en charge par Google en tant que langage de premier ordre pour le développement Android. La popularité de Kotlin est appelée à exploser.!
Dans ce premier tutoriel de la série Kotlin From Scratch, vous apprendrez les bases de la langue: commentaires, variables, types simples, tableaux et inférence de type..
Pour suivre avec moi, vous aurez besoin du plugin Kotlin sur Android Studio. Vous pouvez également utiliser le terrain de jeu en ligne ou IntelliJ IDEA Community Edition.
En Kotlin, utilisez val
déclarer une constante ou var
mots-clés pour déclarer une variable. Vous pouvez spécifier un type tel que Chaîne
ou Int
après le nom de la variable. Dans l'exemple ci-dessous, nous avons déclaré une constante Prénom
de type Chaîne
avec le val
mot-clé.
val firstName: String = "Chike"
Mais vous vous rendrez vite compte qu’à Kotlin, il est souvent possible d’omettre le type de la déclaration et que le compilateur ne se plaint pas.
val lastName = "Mgbemena" // sera toujours compilé
Dans le code ci-dessus, vous remarquerez que nous n'avons pas explicitement indiqué le type Chaîne
. Le code ci-dessus fonctionnera toujours car le compilateur a implicitement inféré le type à l'aide de l'inférence de type. Nous y reviendrons!
La différence entre le val
et var
mots-clés est que le premier est immuable ou en lecture seule (sa valeur ne peut pas être modifiée), tandis que le dernier est mutable (sa valeur peut être modifiée).
val dateOfBirth = "29 mars 1709" dateOfBirth = "25 décembre 1600" // ne peut pas être modifié var car = "Toyota Matrix" car = "Mercedes-Maybach" // peut être modifié
Notez que pour une variable déclarée avec le var
mot clé dont le type est inféré par le compilateur, l'attribution d'une autre valeur d'un type différent ne fonctionnera pas. En d'autres termes, la valeur de la variable peut changer, mais pas son type! Par exemple:
var age = 12 age = "12 ans" // Erreur: incompatibilité de type
Il est vivement recommandé de commencer par rendre vos variables immuables en les déclarant avec le val
mot-clé, afin de ne pas conserver trop d'états. Cela rend votre code plus sûr pour le multithreading, car cela garantit que vos variables ne peuvent pas être modifiées de manière inattendue par d'autres threads..
Une autre chose que vous devez savoir sur le val
mot-clé est que vous pouvez le déclarer avec un type uniquement et lui attribuer une valeur ultérieurement. Mais vous ne pouvez toujours attribuer une valeur qu'une seule fois..
val carName: String carName = "Toyota Matrix" // sera compilé
En Java, il est possible de déclarer plusieurs variables du même type sur une seule ligne, mais cela ne fonctionne pas dans Kotlin. En Kotlin, toutes les déclarations de variables doivent être sur leurs propres lignes.
val carName = "BMW", streetName = "Oke street" // cela ne compilera pas // ceci compilera var carName = "BMW" var streetName = "Oke street"
Kotlin est un langage fortement typé qui supporte l'inférence de type ou la déduction. C'est le mécanisme utilisé par le compilateur pour rechercher les types dans le contexte. Java n'a pas de mécanisme d'inférence de type, ce qui signifie que vous devez déclarer explicitement le type de chaque fonction ou variable. L'inférence de type aide à réduire le code standard que vous devez écrire.
val country = "Nigeria" // le type est déduit du compilateur val code = 234
Le code ci-dessus serait compilé même si nous n’avons pas indiqué explicitement le type de la variable pays. Le compilateur est assez intelligent pour savoir que le pays est de type Chaîne
, parce que la valeur, "Nigeria", est une chaîne.
En Java, nous avons deux types de types-primitive (par exemple int, long, boolean, octet, char, etc.) et de référence (par exemple tableau, Chaîne
). Java utilise des wrappers (comme java.lang.Integer
) pour que les types primitifs se comportent comme des objets. Mais à Kotlin, cette distinction n’existe pas. Au lieu de cela, tous les types sont des objets.
Les types entiers disponibles dans Kotlin sont:
Longue
-64 bitsInt
-32 bitsCourt
-16 bitsOctet
-8 bitsLes types à virgule flottante sont:
Double
-64 bitsFlotte
-32 bitsval myInt = 55 val myLong = 40L val myFloat = 34,43F val myDouble = 45,78 val myHexadecimal = 0x0F val myBinary = 0b010101
Vous pouvez constater que nous avons créé un Longue
littéral en ajoutant le suffixe L
, et pour Flotte
nous avons ajouté le suffixe F
ou F
. Les nombres peuvent également être écrits en notation hexadécimale à l’aide des touches 0x
ou 0X
préfixe et en binaire en utilisant le 0b
ou 0B
préfixe. Notez que dans tous ces cas, Kotlin peut utiliser l'inférence de type pour connaître le type souhaité.
val myLong = 19L val myLongAgain: Long = 40
Pour convertir un nombre d'un type à un autre, vous devez explicitement appeler la fonction de conversion correspondante. En d'autres termes, il n'y a pas de conversion implicite entre les types de nombres.
val myNumber = 400 val myNumberAgain: Long = monNuméro // lève une erreur: incompatibilité de type
Chaque type de numéro a des fonctions d'assistance qui convertissent d'un type de numéro à un autre: toByte ()
, toInt ()
, trop long()
, flotter()
, doubler()
, toChar ()
, raccourcir()
.
val myInt = 987 val myLong = myInt.toLong ()
Dans le code ci-dessus, nous convertissons un entier en un long. Nous pouvons aussi faire l'inverse en utilisant la méthode toInt ()
sur la variable longue. Notez que cela tronquera la valeur pour l’adapter à la plus petite taille d’un objet. Int
tapez si besoin, soyez donc prudent lors de la conversion de types plus volumineux en types plus petits!
Vous pouvez également convertir un Chaîne
dans un type de nombre.
val stringNumber = "101" val intValue = stringNumber.toInt ()
Dans le code ci-dessus, nous avons converti la variable stringNumber
dans un Int
tapez en appelant la méthode toInt ()
sur la variable. Nous pouvons écrire cela plus succinctement en appelant la méthode directement sur la chaîne:
val intValue = "101" .toInt ()
le Booléen
Taper en Kotlin est le même qu'en Java. Sa valeur peut être vraie ou fausse. La disjonction des opérations (||
), conjonction (&&
) et la négation (!
) peut être effectué sur des types booléens, tout comme Java.
val myTrueBoolean = true val myFalseBoolean = false val x = 1 val y = 3 val w = 4 val z = 6 val n = x < z && z > w // n est vrai
Les chaînes peuvent être créées avec des guillemets doubles ou triples. De plus, les caractères d'échappement peuvent être utilisés avec des guillemets.
val myString = "Ceci est une chaîne" val escapeString = "Ceci est une chaîne avec une nouvelle ligne \ n"
Pour créer une chaîne qui s'étend sur plusieurs lignes du fichier source, nous utilisons des guillemets triples:
val multipleStringLines = "" "Ceci est la première ligne Ceci est la deuxième ligne Ceci est la troisième ligne" ""
Kotlin prend également en charge l’interpolation de chaînes ou les modèles de chaînes. C'est un moyen plus facile de construire des chaînes dynamiques que la concaténation, ce que nous utilisons en Java. À l'aide de modèles de chaîne, nous pouvons insérer des variables et des expressions dans une chaîne.
val accountBalance = 200 val bankMessage = "Le solde de votre compte est $ accountBalance" // Le solde de votre compte est 200
Dans le code ci-dessus, nous avons créé un littéral de chaîne, et à l'intérieur de celui-ci, nous avons fait référence à une variable par l'utilisation d'un $
caractère devant le nom de la variable. Notez que si la variable est incorrecte ou n’existe pas, le code ne sera pas compilé..
Qu'en est-il si vous avez besoin d'utiliser $
dans ta ficelle? Vous venez de lui échapper avec \ $
! En outre, vous pouvez appeler des méthodes à partir d'un interpolated Chaîne
directement; vous devez ajouter des accolades $
l'envelopper.
val name = "Chike" val message = "La première lettre de mon nom est $ name.first ()" // La première lettre de mon nom est C
Une autre chose intéressante à faire est d’effectuer une logique entre les accolades lors de la création d’un Chaîne
littéral.
val age = 40 val anotherMessage = "Vous êtes $ if (age> 60)" vieux "autre" jeune "" // vous êtes jeune
Dans Kotlin, il existe deux manières principales de créer un tableau: en utilisant la fonction d'assistance tableau de()
ou le constructeur Tableau ()
.
tableau de()
Une fonctionPar exemple, créons un tableau avec quelques éléments en utilisant tableau de()
.
val myArray = arrayOf (4, 5, 7, 3)
Maintenant, pour accéder à n'importe quel élément, nous pouvons utiliser son index: mon tableau [2]
. Notez que nous pouvons passer des valeurs de différents types dans le tableau de()
comme arguments et cela fonctionnera toujours, ce sera un tableau de type mixte.
val myArray = arrayOf (4, 5, 7, 3, "Chike", false)
Pour faire en sorte que toutes les valeurs de tableau aient le même type, par exemple. Int
, nous déclarons un type en appelant tableau de
ou intArrayOf ()
.
val myArray3 = arrayOf(4, 5, 7, 3, "Chike", false) // ne compilera pas la valeur val myArray4 = intArrayOf (4, 5, 7, 3, "Chike", false) // ne compilera pas
Nous avons également d'autres fonctions utilitaires pour créer des tableaux d'autres types tels que charArrayOf ()
, booleanArrayOf ()
, longArrayOf ()
, shortArrayOf ()
, byteArrayOf ()
, etc. En coulisse, l'utilisation de ces fonctions créera un tableau de leurs types primitifs Java respectifs. En d'autres termes, intArrayOf ()
compilera au type primitif Java habituel int []
, byteArrayOf ()
sera octet[]
, longArrayOf ()
sera longue[]
, etc.
Tableau ()
ConstructeurVoyons maintenant comment créer un tableau avec Tableau ()
. Le constructeur de cette classe nécessite une taille et une fonction lambda. Nous en apprendrons plus sur les fonctions lambda plus tard dans cette série, mais pour l’instant, comprenez simplement qu’il s’agit d’un moyen simple et intégré de déclarer une fonction anonyme. Dans ce cas, le travail de la fonction lambda consiste à initialiser le tableau avec des éléments.
val numbersArray = Tableau (5, i -> i * 2)
Dans le code ci-dessus, nous avons passé 5 comme taille du tableau dans le premier argument. Le deuxième argument prend une fonction lambda, qui prend l'index de l'élément de tableau, puis renvoie la valeur à insérer à cet index dans le tableau. Ainsi, dans l'exemple ci-dessus, nous avons créé un tableau avec les éléments 0, 2, 4, 6 et 8..
C'est facile. En Kotlin, les commentaires sont identiques à ceux de Java. Nous pouvons utiliser des commentaires de bloc ou de ligne:
/ * bonjour, ceci est un commentaire de bloc avec plusieurs lignes. Ceci est une autre ligne. Ceci est encore un autre * / // ceci est un commentaire d'une seule ligne
Dans ce tutoriel, vous avez appris les bases du langage de programmation Kotlin: variables, types de base, inférence de type, tableaux et commentaires. Dans le prochain didacticiel de la série Kotlin From Scratch, vous découvrirez les boucles, les plages, les conditions, les collections et les packages de Kotlin. À bientôt!
Pour en savoir plus sur la langue Kotlin, je vous recommande de consulter la documentation Kotlin. Ou consultez certains de nos autres tutoriels sur Kotlin ici sur Envato Tuts+.