DART – Les bases du language

La doc officiel : https://dart.dev/guides/language/language-tour

Pour faire des tests facilement il y a : https://dartpad.dev/

Les DevTips sont des notes perso, sur lequel je peu m’appuyer en cas d’oublie 😉

Je les mets en ligne, au cas ou sa peu aider d’autres développeurs.

Les variables

var test = "Je suis une chaine de caractere";

String test2 = "Je suis une string aussi";

String testConcat = "Je suis un exemple de concat" + test;

String testConcatDeux = "$test et voici un exemple de concat";

‘var’ déclare la variable de manière à ce que le type n’est pas renseigné, attention car une fois un type assigné il est pas possible d’en changer.

var age = 33; //Automatique la variable age prendra le type INT

age = "chien"; // on essaye de changer

On obtiens une erreur :

Error: A value of type 'String' can't be assigned to a variable of type 'int'.

Maintenant comment concaténer une chaine de caractère et un int ?

int age = 33;
String year = "ans";

String total = "J'ai " + age.toString() + " " + year;

print(total);

La liste

void main() {

List<String> maList = ["test","test2","test3"];
  
print(maList); //affiche [test, test2, test3]
  
print(maList[2]); //affiche le 3eme car le tableau commence par 0 ;)
  
//Ajouter un element
maList.add("test4");
print(maList);
  
//Remove un element
maList.remove("test2");
print(maList);
  
//removeAt
maList.removeAt(0);
print(maList);

}

MAP

void main() {

Map maMap = {
  'Test': 12,
  'Test2': 15,
  'Test3': 20
};

print(maMap);

//Longueur de la map
print(maMap.length);

//Ajouter un element
maMap['Test4'] = 50;
print(maMap);

//Remove elements
maMap.remove('Test'); 
//Remove uniquement par rapport à une clef, ne fonctionne pas avec une value
print(maMap);
  
maMap.clear(); //pas besoin d'en dire plus ;)
  
}

Les Conditions

Un truc de base semblable à d’autres languages

void main() {

var age = 18;
  
  //if else
  if (age >= 18) {
    print("Oui");
  } else {
    print("Non");
  }
  
  //Code optimiser
  print( age >= 18 ? "Oui" : "Non");
  
}

Les boucles for

void main() {

//Boucle for toute simple
for (var x = 0; x < 10; x++) {
print("Bonjour les devs ${x + 1} fois.");
};
  
//Boucle avec une liste
List<String> maList = ["Jean","Pierre","Foucault"];
  
//1er façon
  for (var x = 0; x < maList.length; x++) {
    print(maList[x]);
  }

//2nd Façon
  maList.forEach((prenom) {
    print(prenom);
  });

//3eme Façon
  maList.forEach((prenom) => print(prenom));
  
  
//Boucle pour Map
  Map maMap = {
    1 : "Test1",
    2 : "Test2",
    3 : "Test3"
  };
  
//1er methode
  maMap.forEach((key, value) {
    print("Numéro : $key - la value est : $value");
  });
  
//2nd methode la meilleur
  maMap.forEach((key, value) => print("Numéro : $key - la value est : $value"));
  
}

Les boucles while

While est égale à “Tant que”

void main() {

var nbrPizza = 1;
  
//While
while (nbrPizza < 10) {
  print("Commande(s) de pizza : " + nbrPizza.toString());
  nbrPizza++;
};
  
//Do
do {
  print("Nombre de commande de pizza : " + nbrPizza.toString());
} while (nbrPizza < 10);
  
}

Quels différences entre une boucle While et une boucle Do ?

While va d’abord vérifier la condition ici le nombre de Pizza et ensuite executer.

Do va executer et à la fin vérifier si la condition est valide, par la suite on continue ou on recommence.

Switch

la encore c’est du basic

void main() {

var couleur = "bleu";
  
  switch (couleur) {
    case 'Vert':
      print('couleur vert');
      break;
    case 'bleu':
      print('couleur bleu');
      break;
        
      default: break;
  };
  
}

Les functions

void main() {
  
  // Si on appel la function avant qu'elle ne soit charger maPremiereFunction();
  // Cela ne fonctionnera pas.
  
  // L'appel doit se faire dans un ordre linéaire
  // La fonction doit étre charger avant d'étre appeler.

  // le 'void' n'est pas obligatoire pour fonctionner c'est une préférence personnel
  // respect de la convention du language
  // void car la function ne return rien
  void maPremiereFunction() {
    print('test');
  }
  
  maPremiereFunction();
  
  //Function avec params
  void maSecondeFunction(String params) {
    print('test : $params');
  }
  
  maSecondeFunction('ma chaine de caractere');
  
}

Function avec return

void main() {
  
  String maFunctionDeFolie(String params) {
    return 'TEST TEST TEST : $params';
  }
  
  var monTest = maFunctionDeFolie('Chien');
  
  print(monTest);
  
  
  //Version Optimiser
  double maSecondeFunction(double premier, double second) => premier * second;
  
  print(maSecondeFunction(2.35,3));
  
}

Exercices

  • Faire une boucle de 0 à 100 et print que les nombres impairs en Dart
  • Faire une function de conversion celsius en Fahrenheit

Solutions exercices Dart

Leave a Reply