Menu
Coddy logo textTech

Aide-mémoire Dart

Dernière mise à jour

Hello World et structure d'un programme

Chaque programme Dart démarre à la fonction main de premier niveau.

OpérationSyntaxe
Point d'entréevoid main() { ... }
Afficher une ligneprint("Hello, World!");
Interpolation de chaîneprint("Hi $name");
Expression dans l'interpolationprint("Sum: ${a + b}");
Commentaire// this is a comment
Commentaire multiligne/* ... */
Importer une bibliothèqueimport 'dart:math';
Exécuter un fichierdart run main.dart

Variables et types

Dart est typé statiquement mais peut inférer les types avec var.

OpérationSyntaxe
Variable inféréevar age = 30;
Type expliciteint age = 30;
Constante de compilationconst pi = 3.14;
Constante d'exécutionfinal name = getName();
Types de baseint, double, String, bool
Type dynamiquedynamic x = 5;
Conversion de typeint.parse("42"), n.toString()
Vérifier le typex is String, x as String

Null safety

Les types sont non nullables par défaut ; ajoutez ? pour autoriser null.

OpérationSyntaxe
Non nullable (par défaut)int count = 0;
Type nullableString? name;
Accès tenant compte de nulluser?.name
Coalescence des nulsname ?? "default"
Affectation coalescentename ??= "default";
Affirmer non nullname!
Initialisation tardivelate String value;
Spread tenant compte de null[...?maybeList]

Chaînes

Les chaînes prennent en charge les guillemets simples, doubles et triples.

OpérationSyntaxe
Longueurs.length
Majuscules / minusculess.toUpperCase(), s.toLowerCase()
Interpolation"Total: $price"
Concaténer"foo" + "bar"
Contients.contains("ell")
Commence / se termine pars.startsWith("he")
Découper"a,b,c".split(",")
Remplacers.replaceAll("a", "b")
Sous-chaînes.substring(0, 3)
Élaguer (trim)s.trim()

Collections (List, Map, Set)

Trois types de collection principaux avec une syntaxe littérale.

OpérationSyntaxe
Littéral de listevar nums = [1, 2, 3];
Ajouter à la listenums.add(4);
Accès / longueurnums[0], nums.length
Map / wherenums.map((n) => n * 2), nums.where((n) => n > 1)
Littéral de mapvar ages = {"Ada": 30};
Accès à la mapages["Ada"]
Littéral d'ensemblevar ids = {1, 2, 3};
Opérateur de spreadvar all = [...a, ...b];
If / for de collection[if (show) 1, for (n in xs) n]

Contrôle de flux

Les conditions vont entre parenthèses ; switch prend en charge les motifs.

OpérationSyntaxe
If / elseif (x > 0) { ... } else { ... }
Ternairevar r = x > 0 ? "pos" : "neg";
Switchswitch (n) { case 1: ...; default: ... }
Boucle forfor (var i = 0; i < 10; i++) { ... }
Boucle for-infor (var item in items) { ... }
forEachitems.forEach((x) => print(x));
Boucle whilewhile (x < 100) { ... }
Do-whiledo { ... } while (x < 100);
Break / continuebreak;, continue;

Fonctions

Les fonctions sont de première classe ; la syntaxe fléchée raccourcit les expressions uniques.

OpérationSyntaxe
Définir une fonctionint add(int a, int b) { return a + b; }
Fonction fléchéeint square(int x) => x * x;
Positionnel optionnelvoid log(String m, [int? code]) { ... }
Paramètres nommésvoid box({int w = 0, int h = 0}) { ... }
Nommé requisvoid box({required int w}) { ... }
Fonction anonymevar f = (x) => x * 2;
Passer en argumentnums.map((n) => n * 2)
Typedeftypedef IntOp = int Function(int);

Classes et constructeurs

Les classes contiennent l'état et le comportement ; les constructeurs existent sous plusieurs formes.

OpérationSyntaxe
Définir une classeclass Point { int x; int y; }
ConstructeurPoint(this.x, this.y);
Constructeur nomméPoint.origin() : x = 0, y = 0;
Créer une instancevar p = Point(1, 2);
Méthodedouble dist() { ... }
Getterint get area => w * h;
Héritageclass Circle extends Shape { ... }
Appeler supersuper(args)
Classe abstraiteabstract class Shape { ... }
Implémenter une interfaceclass Dog implements Animal { ... }

Async (Future / async-await)

Les futures représentent des valeurs disponibles plus tard ; await met en pause jusqu'à leur résolution.

OpérationSyntaxe
Fonction asyncFuture<int> load() async { ... }
Attendre une futurevar data = await load();
Renvoyer une valeurreturn 42; dans une fonction async
Délaiawait Future.delayed(Duration(seconds: 1));
Gérer les erreurstry { await load(); } catch (e) { ... }
Chaînage avec thenload().then((v) => print(v));
Exécuter en parallèleawait Future.wait([a(), b()]);
Stream asyncawait for (var x in stream) { ... }

La syntaxe Dart que vous utilisez le plus, sur une seule page. Cet aide-mémoire Dart est une référence rapide pour le cœur du langage - variables et types, null safety, chaînes, collections, contrôle de flux, fonctions, classes, ainsi que les futures et async/await que vous utilisez pour écrire les applications derrière Flutter.

Tout ce qui figure ici est du Dart standard et s'exécute sur le SDK officiel. Copiez ce dont vous avez besoin, ou essayez chaque extrait en direct dans le playground Dart - aucune installation requise.

FAQ de l'aide-mémoire Dart

Cet aide-mémoire Dart est-il gratuit ?
Oui. Cet aide-mémoire Dart est entièrement gratuit, sans inscription. Mettez-le en favori et revenez dès que vous devez retrouver un opérateur de null safety, une méthode de collection ou un motif async.
Comment fonctionne la null safety en Dart ?
En Dart, chaque type est non nullable par défaut - int count ne peut jamais contenir null. Pour autoriser null, vous ajoutez un ? (String? name), et le compilateur vous oblige alors à gérer le cas null. Des utilitaires rendent cela concis : ?. pour un accès tenant compte de null, ?? pour une valeur de repli, et ! pour affirmer qu'une valeur est non nulle lorsque vous en êtes certain. Cela détecte les erreurs de null à la compilation plutôt qu'à l'exécution.
Qu'est-ce qu'une Future et comment fonctionnent async et await ?
Une Future représente une valeur qui sera disponible plus tard, comme le résultat d'un appel réseau. Marquer une fonction async vous permet d'utiliser await, qui met l'exécution en pause jusqu'à ce que la future se termine, puis vous donne la valeur - vous écrivez ainsi du code asynchrone qui se lit de haut en bas comme du code synchrone. Entourez les await de try/catch pour gérer les erreurs.
Puis-je m'entraîner à Dart en ligne ?
Oui. Ouvrez le playground Dart pour exécuter n'importe quel extrait de cet aide-mémoire dans votre navigateur - aucun SDK à installer. Quand vous voulez de la structure, le cours Dart interactif gratuit de Coddy vous emmène de la null safety et des collections jusqu'aux classes et à async/await, étape par étape.
Cet aide-mémoire convient-il aux débutants ?
Oui. Il est organisé des sujets les plus courants (variables, null safety, contrôle de flux) jusqu'aux plus avancés (classes, futures, async/await), pour que vous puissiez utiliser les premières sections dès le premier jour et progresser vers le reste.
Coddy programming languages illustration

Apprenez Dart avec Coddy

COMMENCER