En kotlin il y a plusieurs manière de déclarer une variable
l'exemple ci dessous montre trois façon de déclarer une variable de type "String" :
val nomDeLaVariable = "Hello World
val nomDeLaVariable:String = "Hello world
var nomDeLaVariable:String = "Hello world
val
(pour valeur): Sera une variable immuable, vous ne pourrez pas la modifier une fois initialisées.
var
(pour variable): Sera muable, vous pourrez la modifier même après l'avoir initialisé.
Kotlin invite fortement a déclarer nos variable en immuable afin de rendre notre code le plus proche possible du style de programmation fonctionnelle, limitant ainsi l'effets de bord.
En revanche les variables avec le mot-clé val
n'on pas obligation d'etre declarer dans le meme bloc !
Exemple:
val message:String
if (UserHappy()){
message = "Je suis content"
} else {
message = "je suis mécontent ! "
}
En kotlin ils nous aient permit de declarer une variable a null, pour cela rien de bien compliquer il suffit juste de l'écrire comme cela:
var message:String? = "Cette variable peut etre null"
message.toUppercase()
En kotlin le mot-clé static
n'existe plus, il existe tout de meme un equivalent
Ainsi, voici l'equivalent sous kotlin :
const val SERVER_URL: string="https://myapi.com"
le mot-clé const
suivi du mots-clé val
permet de définir une constante dont la valeur sera connu au moment de la compilation.
Imaginons que nous voulions declarer une variable muable mais que nous souhaitons pas l'initialiser immédiatement mais plus tard dans le code.
Nous pouvons faire comme cela :
var username: String = null
cela peu marcher sauf que votre variable peu etre possiblement null et nous ne voulons pas.
Dans ce cas il faut utiliser simplement lateinit
(pour "late-initialized").
Cela permet d'indiquer a kotlin que vous etes sur et certain d'initialiser la variable en question un peu plus tard dans notre code.
exemple:
lateinit var username: String
var name: String = "Jon"
println(name)
username = "patrick"
Décortiquons cette fonctions:
fun main(args: Array<String>) {
println("helloà world")
}
Expliquons un peu plus en détail ces lignes :
- Le mot-clé
fun
suivi de son nom nous permet de définir une fonction, puis de la nommer. - Le type du paramètre (
Array<String>
) est indiquer après son nom (args
). Les deux point:
indiquent toujours la déclaration d'un type en kotlin. - Une fonction pet se déclarer dans un fichier Kotlin (possédant l'extension .kt) sans etre a l'intérieur d'une classe. Nous en parlerons en details un peu plus tard.
- Nous afficherons dans la console du texte grace a la commande
println()
. C'est l'équivalent du fameuxSystem.out.println
en java. - La encore, vous n'avez pas besoins d'ajouter un point virgule pour terminer votre instruction.
Comme on peut le remarquer juste au dessus, les paramètres de la fonction sont séparés par une virgule.
Afin de retourner une valeur de type Int
, nous allons utiliser encore une fois les deux points :
à la fin de notre function.
En Kotlin if
est une expression et non une instruction comme java.
Quel est la différence entre ces deux notions ?
Une expression est une combinaison d'un ou plusieurs valeurs, constantes, variables, opérateurs et functions d'un language de programmation va interpreter, puis calculer, pour finalement en produire une valeur différente.
Pour faire plus simple, une expression est toute partie de votre code qui peut retourner une valeur. Ainsi 1+1
est une expression; maxOf(5, 7)
est une expression etc.
À l'inverse, une instruction est la plus petit partue d'un élément indépendant de votre code qui attend qu'une action soit effectuée.
Pour faire simple une instruction est un bloc de code qui ne retourne aucune valeur. Par exemple var username = "Phil"
est une instruction.