Kotlin
Le mémo de Kotlin : variables, conditions, fonctions, null, classes, collections, coroutines et Jetpack Compose.
Ce mémo résume l'essentiel de Kotlin. Chaque section renvoie au cours qui l'explique en détail.
Variables et types
val titre = "Tarte" // lecture seule
var portions = 4 // modifiable
val prix: Double = 12.5 // type écrit
println("$titre : ${portions + 1}")
| Type | Contenu |
|---|---|
Int, Long | Entiers |
Double, Float | Décimaux (24.5f pour Float) |
Boolean, Char, String | Vrai ou faux, caractère, texte |
Détails : Découvrir Kotlin.
Conditions et boucles
val duree = when {
minutes < 15 -> "express"
minutes in 15..45 -> "normale"
else -> "longue"
}
for (i in 1..3) println(i) // 1 2 3
for (i in 1..<3) println(i) // 1 2
for (i in 6 downTo 0 step 2) println(i)
Détails : Conditions, boucles et fonctions.
Fonctions
fun total(prix: Double, quantite: Int = 1) = prix * quantite
total(2.5, 4)
total(quantite = 2, prix = 2.5)
Détails : Conditions, boucles et fonctions.
Sécurité du null
| Syntaxe | Effet |
|---|---|
String? | Type qui accepte null |
a?.length | Appel seulement si a n'est pas null |
a?.length ?: 0 | Valeur de secours |
a?.let { ... } | Bloc exécuté si a existe |
x as? Int | Conversion qui donne null en cas d'échec |
a!!.length | Plante si a est null : à éviter |
Détails : La sécurité du null.
Classes et objets
class Ingredient(val nom: String, var quantite: Int)
data class Recette(val titre: String, val minutes: Int)
val rapide = Recette("Tarte", 50).copy(minutes = 30)
object Carnet { fun nombre() = 0 }
class Plat {
companion object { fun vide() = Plat() }
}
Détails : Classes, data classes et objets.
Collections et lambdas
val liste = listOf(10, 45, 20)
val ensemble = setOf(1, 2, 2)
val dico = mapOf("tarte" to 50)
val modifiable = mutableListOf("sel")
liste.filter { it < 30 } // [10, 20]
liste.map { it * 2 } // [20, 90, 40]
Détails : Collections et lambdas.
Coroutines
suspend fun charger(): String {
delay(1.seconds)
return "Tarte"
}
coroutineScope {
launch { println("sans résultat") }
val a = async { charger() }
println(a.await())
}
Dépendance Gradle : org.jetbrains.kotlinx:kotlinx-coroutines-core. Détails : Coroutines et Jetpack Compose.
Jetpack Compose
@Composable
fun Compteur() {
var portions by remember { mutableStateOf(4) }
Button(onClick = { portions += 1 }) {
Text("Portions : $portions")
}
}
Détails : Coroutines et Jetpack Compose.
Sources officielles
Ensuite
- Projet
- Lignes de code
- Niveau
- Le quartier
- Appartement
- Kotlin
- Pièce
- 7/7
- Plan n°
- kotlin/index