Variables & types
Dart est typé mais sait inférer. var déduit le type, final interdit la réassignation, const est constant à la compilation.
var zone = 'Ladignac'; // String inféré final int litres = 1500; const double tva = 0.20; String? commentaire; // peut être null (voir section 2)
La null-safety
Par défaut une variable ne peut pas être null. Le ? autorise null ; le ! affirme non-null ; ?? fournit une valeur par défaut.
String? nom; // nullable print(nom ?? 'Anonyme'); // valeur si null
NullPointerException).Fonctions & paramètres nommés
Dart aime les paramètres nommés (entre accolades), très présents dans les widgets Flutter.
int prixTotal(int litres, {double prix = 1.0}) => (litres * prix).round(); prixTotal(1500, prix: 1.02);
Classes & collections
Classes classiques ; listes (List), ensembles (Set), dictionnaires (Map). Les méthodes fonctionnelles (map, where) sont partout.
class Campagne { final String zone; final int volume; Campagne(this.zone, this.volume); } var zones = campagnes.map((c) => c.zone).toList();
L'asynchrone : Future, async/await
Un appel réseau renvoie un Future (une valeur « plus tard »). async/await rend le code lisible.
Future<List<Campagne>> charger() async { final reponse = await http.get(url); return parse(reponse.body); }
Tu utiliseras tout ça : une classe Campagne avec final, des List<Campagne>, la null-safety pour les champs optionnels, et async/await pour appeler l'API. Ce chapitre est la boîte à outils du reste du parcours.
var/final/const; null-safety (?,!,??).- Paramètres nommés (omniprésents dans les widgets).
- Classes, collections, et
Future+async/await.