Le quartierK KotlinPièce 7/7Mémo

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}")
TypeContenu
Int, LongEntiers
Double, FloatDécimaux (24.5f pour Float)
Boolean, Char, StringVrai 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

SyntaxeEffet
String?Type qui accepte null
a?.lengthAppel seulement si a n'est pas null
a?.length ?: 0Valeur de secours
a?.let { ... }Bloc exécuté si a existe
x as? IntConversion qui donne null en cas d'échec
a!!.lengthPlante 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
Lignes de code · fiches rédigées à partir des documentations officielles, sources citées en bas de chaque page.