classi
class Camera(val model: String)
val cam = Camera("A7S")
data class
data class Shot(val id: Int, val name: String)
val shot = Shot(1, "A")
sealed class
sealed class Result
data class Ok(val value: String): Result()
object Fail: Result()
extension functions
fun String.slug(): String = lowercase().replace(" ", "-")
println("Hello World".slug())
esercizi
definisci una data class e mappa una lista.
data class Item(val id: Int, val name: String)
val items = listOf(Item(1, "A"), Item(2, "B"))
val names = items.map { it.name }
println(names)
panoramica
In questo capitolo su classi e data class lavoriamo su classi, data class, sealed class, extension functions per creare micro-pattern riutilizzabili.
lavora in sequenza: leggi, prova, modifica gli snippet e annota i trade-off principali.
badge: kotlin essentials
obiettivi
- capire e applicare classi in uno scenario reale
- capire e applicare data class in uno scenario reale
- capire e applicare sealed class in uno scenario reale
- capire e applicare extension functions in uno scenario reale
scheda rapida
class Camera(val model: String)
val cam = Camera("A7S")
adatta questo scheletro agli esempi della lezione.
tips
- usa val quando possibile
- sfrutta data class
- gestisci null in modo esplicito
- coroutines con scope chiari
- moduli gradle coerenti
- mantieni classi leggibile
tip: documenta ogni scelta architetturale.
mini progetto
crea un catalogo con data class e list.
- definisci data class
- crea list
- stampa output
output atteso: catalogo stampato.
checklist
- ho eseguito gli snippet e controllato l'output
- ho annotato almeno 2 trade-off
- ho completato il mini progetto
- ho salvato un riepilogo personale