Back

Les fonctions dans Dart

Les structures conditionnelles en Dart

  1. Présentation

    • Chaque semaine, il y a des tâches que vous répétez encore et encore : prendre votre petit-déjeuner, vous brosser les dents, écrire votre nom, lire des livres sur Dart, etc. Chacune de ces tâches peut être divisée en tâches plus petites. Se brosser les dents, par exemple, consiste à mettre du dentifrice sur la brosse, à brosser chaque dent et à se rincer la bouche avec de l’eau.
    • La même idée existe en programmation informatique. Une fonction est une petite tâche, ou parfois un ensemble de plusieurs petites tâches connexes que vous pouvez utiliser conjointement avec d’autres fonctions pour accomplir une tâche plus importante.
    • En programmation, une fonction ou une méthode est un ensemble de codes qui exécute une tâche spécifique.
    • Les fonctions Dart,sont des objets de type Function. Cela signifie que les fonctions peuvent être affectées à des variables ou transmises comme arguments à d’autres fonctions.
    • Dans ce tutoriel, vous apprendrez à écrire des fonctions dans Dart, y compris des fonctions nommées et des fonctions anonymes.
  2. Définition d’une fonction Dart

    • La fonction est un ensemble d’instructions groupées logiquement qui exécutent une tâche spécifique. Dans le programme Dart, une fonction est créée pour réaliser quelque chose.
    • Chaque programme Dart a au moins une fonction c’est-à-dire main() où l’exécution du programme commence. C’est une fonction obligatoire dans Dart.
    • Une fonction est utilisée pour :
      • Eviter la répétition des codes.
      • Augmenter la lisibilité du programme.
      • Diviser un problème complexe en problèmes plus simples.
      • Réduire les risques d’erreur.
    • La fonction est définie avant main()
  3. Fonctions de base en Dart

    • Vous pouvez penser à des fonctions comme des machines ; ils prennent quelque chose que vous leur fournissez (l’intrant) et produisez quelque chose de différent (la sortie).
    • Les fonctions dans Dart

    • Il existe de nombreux exemples de cela dans la vie quotidienne. Par exemple:
      • Avec une pomme presse-agrumes, vous mettez des pommes et vous sortez du jus de pomme, l’entrée est des pommes, la sortie est du jus.
      • Pour un lave-vaisselle l’entrée est de la vaisselle sale et la sortie est propre vaisselle.
      • Blenders, cafetières, micro-ondes et fours sont tout comme les fonctions du monde réel qui acceptent une entrée et produire une sortie.
  4. Syntaxe d’une fonction Dart

    • Dans Dart, une fonction se compose d’un type de retour, d’un nom, d’un liste de paramètres entre parenthèses et un corps entre accolades.
    • Les fonctions dans Dart

    • Paramètres
      • Type de retour (Return type).

        • Cette fonction particulière renverra une chaîne, mais vos fonctions peuvent renvoyer n’importe quel type que vous aimez.
        • Si la fonction ne renverra rien, c’est-à-dire s’il effectue un travail mais ne produit pas de valeur de sortie, vous pouvez utiliser void comme type de retour.

        Les fonctions dans Dart

      • Nom de la fonction (Function name).

        • vous pouvez presque nommer les fonctions tout ce que vous voulez, mais vous devez suivre les convention de dénomination lowerCamelCase. Vous apprendrez quelques
      • Paramètres d’une fonction Dart (Parameters).

        • Les paramètres sont l’entrée de la fonction ;
        • ils vont à l’intérieur des parenthèses après le nom de la fonction.
        • Cet exemple n’a qu’un seul paramètre, mais si vous aviez plus d’un, vous les sépareriez par des virgules.
        • Pour chaque paramètre, vous écrivez d’abord le type, suivi d’un nom. Tout comme avec les noms de variables, vous devez utiliser lowerCamelCase pour vos noms de paramètres.
      • Valeur de retour d’une fonction Dart (Return value).

        • C’est la sortie de la fonction, et elle doit correspondre au type de retour. Dans l’exemple ci-dessus, la fonction renvoie une valeur String en utilisant le retour mot-clé. Si le type de retour est void, alors vous ne retourne rien.
  5. Les types de paramètres dans les fonctions Dart

    • Les paramètres sont classés en deux types dans Dart : obligatoires et optionnels . Puis, les paramètres optionnels sont divisés en nommés, positionnels ou par défaut.
    • Les fonctions dans Dart

    • Les paramètres obligatoires
      • Ici, il faut passer des arguments pour tous les paramètres sinon on ne pourra pas exécuter la fonction, elle renverra une erreur.
    • Paramètres optionnels ou facultatifs
        • Les paramètres optionnels peuvent être soit positionné ou nommé, mais pas les deux en même temps.
        • Les deux peuvent avoir une valeur par défaut. Elle doit être une constante de compilation telle qu’une valeur littérale. Si aucune valeur par défaut n’est fournie, la valeur est null.
        • On, peut passer ou ignorer l’argument pour le paramètre qui est entouré de crochets [].
        • Si l’argument est ignoré pour le paramètre, il prendra la valeur NULL.
        • Exemples: Utilisation du paramètre positionnel
          • void main() {
              pays('France', 'Allemagne');
            }
            void pays(String name1, String name2, [String? name3]) {
              print("J'habite en $name1");
              print("J'habite en $name2");
              print("J'habite en $name3");
            }
            J'habite en France
            J'habite en Allemagne
            J'habite en null
            void main() {
              afficherDetails("votre_nom", "votre_adresse", "21677777777");
              print('\n');
              afficherDetails("votre_nom", "votre_adresse");
            }
            
            //Paramètres positionnels facultatifs
            void afficherDetails(String nom, String adresse, [String? numTelephone]) {
              print("votre nom est: $nom");
              print("votre adresse est: $adresse");
              print(
                  "votre numéro de téléphone est: ${numTelephone 
            ?? "Pas de numéro de téléphone"}");
            }
            
            votre nom est: votre_nom
            votre adresse est: votre_adresse
            votre numéro de téléphone est: 21677777777
            
            
            votre nom est: votre_nom
            votre adresse est: votre_adresse
            votre numéro de téléphone est: Pas de numéro de téléphone
        • Paramètres positionnels

          • Si nous encapsulons un ensemble de paramètres de fonction dans [], nous les marquons en tant que paramètres positionnels facultatifs.
          • On utilise des crochets [] pour spécifier des paramètres optionnels de position dans Dart. En fait, il faut savoir quelle position correspond à quel paramètre.
          • Dans les paramètres positionnels, vous devez fournir les arguments dans le même ordre que celui que vous avez défini sur les paramètres lorsque vous avez écrit la fonction. Si vous appelez la fonction avec le paramètre dans le mauvais ordre, vous obtiendrez un mauvais résultat.
          • Exemple 1 : Utilisation du paramètre positionnel
            • Dans l’exemple ci-dessous, la fonction printInfo prend deux paramètres. Vous devez passer le nom et le sexe de la personne dans le même ordre. Si vous passez des valeurs dans le mauvais ordre, vous obtiendrez un mauvais résultat .
            • void printInfo(String name, String genre) {
                print("Bonjour $name votre sexe est $genre.");
              }
              
              void main() {
                // transmettre des valeurs dans le mauvais ordre
                printInfo("Homme", "Mohamed");
              
                // transmettre les valeurs dans le bon ordre
                printInfo("Mohamed", "Homme");
              }
              
              Bonjour Homme votre sexe est Mohamed.
              Bonjour Mohamed votre sexe est Homme.
          • Exemple 2 : fournir une valeur par défaut pour le paramètre de position
            • Dans l’exemple ci-dessous, la fonction printInfo prend deux paramètres positionnels et un paramètre optionnel. Le paramètre de titre est facultatif ici. Si l’utilisateur ne transmet pas le titre, il définira automatiquement la valeur du titre sur Monsieur.
            • void printInfo(String nom, String genre, [String titre = "Monsieur"]) {
                print("Bonjour $titre $nom votre genre est $genre.");
              }
              void main() {
                printInfo("Mohamed", "Homme");
                printInfo("Mohamed", "Homme", "Mr.");
                printInfo("Eve", "Female", "Ms.");
              }
              Bonjour Monsieur Mohamed votre genre est Homme.
              Bonjour Mr. Mohamed votre genre est Homme.
              Bonjour Ms. Eve votre genre est Female.
          • Exemple 3 : fournir une valeur par défaut pour le paramètre de position
            • Dans l’exemple ci-dessous, la fonction add prend deux paramètres positionnels et un paramètre optionnel. Le paramètre nbr3 est facultatif ici avec la valeur par défaut 0 .
            •  void add(int nbr1, int nbr2, [int nbr3=13]){
                 int somme;
                somme = nbr1 + nbr2 + nbr3;
                 
                 print("La somme est $somme");
              }
              void main(){
                add(10, 20);
                add(10, 20, 30);
              }
              La somme est 43
              La somme est 60
        • Paramètres nommés

          • Les accolades {} sont utilisées pour les paramètres optionnels nommés dans Dart.
          • Nous définissons les paramètres nommés en les listant entre accolades {}, par exemple, {int a, int b, …}.
          • Dart vous permet d’utiliser des paramètres nommés pour rendre le signification des paramètres plus claire dans les appels de fonction.
          • Pour créer un paramètre nommé, vous l’entourez de boucles accolades au lieu de crochets.
          • Voici la même fonction comme ci-dessus, mais en utilisant à la place des paramètres nommés :
          • Les fonctions dans Dart

              Notez ce qui suit :

            • min et max sont entourés d’accolades, ce qui signifie que vous devez utiliser les noms de paramètre lorsque vous fournissez leur valeurs d’argument à la fonction.
            • Comme les crochets, les accolades rendent les paramètres à l’intérieur en option. Puisque la valeur n’est pas à l’intérieur des accolades, cependant, c’est toujours nécessaire.
            • Les accolades {} sont utilisées pour les paramètres optionnels nommés dans Dart. Comme les paramètres nommés sont référencés par leur nom, ils peuvent donc être utilisés lors de l’appel dans un ordre différent de celui de la déclaration.

          • Exemple 1 : Utilisation du paramètre nommé
            • Dans l’exemple ci-dessous, la fonction printInfo prend deux paramètres nommés. Vous pouvez transmettre la valeur dans n’importe quel ordre.
            • void printInfo({String? nom, String? genre}) {
                print("Bonjour $nom votre genre est $genre.");
              }
              void main() {
                // vous pouvez passer des valeurs dans n'importe
                //quel ordre dans les paramètres nommés.
                printInfo(genre: "Homme", nom: "Mohamed");
                printInfo(nom: "Sarra", genre: "Femme");
                printInfo(nom: "Rima", genre: "Femme");
                printInfo(nom: "Rima", genre: "Femme");
                printInfo(nom: "Habib", genre: "Homme");
                printInfo(genre: "Homme", nom: "Sarra");
              }
              Bonjour Mohamed votre genre est Homme.
              Bonjour Sarra votre genre est Femme.
              Bonjour Rima votre genre est Femme. 
              Bonjour Rima votre genre est Femme. 
              Bonjour Habib votre genre est Homme.
              Bonjour Sarra votre genre est Homme.
          • Exemple 2 : Utilisation de Required dans le paramètre nommé
            • Dans l’exemple ci-dessous, la fonction printInfo prend deux paramètres nommés. Vous pouvez voir un mot-clé obligatoire , ce qui signifie que vous devez transmettre le nom et le genre de la personne. Si vous ne le passez pas, cela ne fonctionnera pas.
            • void printInfo({required String nom, required String genre}) {
                print("Bonjour $nom votre genre est $genre.");
              }
              
              void main() {
                // vous pouvez passer des valeurs dans n'importe 
                //quel ordre dans les paramètres nommés.
                printInfo(genre: "Homme", nom: "Mohamed");
                printInfo(genre: "Femme", nom: "Sarra");
              }
              Bonjour Mohamed votre genre est Homme.
              Bonjour Sarra votre genre est Femme.
  6. Application

    • App01
      • Écrire un programme Dart qui demande à l’utilisateur de saisir deux nombres positifs.
      • Écrire une fonction somme qui renvoie la somme des deux nombres saisies.
      • Solution
        main() {
          int x = 8;
          int y = 6;
          
          int z = som(x, y);
          print("Résultat : $z");
        }
        int som(int a, int b) {
          return a + b;
        }
    • App02
      • Écrire un programme Dart qui demande à l’utilisateur de saisir une chaîne de caractère.
      • Écrire une fonction qui vérifie si une chaîne passée est palindrome ou non ?
      • Remarque : Un palindrome est un mot, une phrase ou une séquence qui se lit de la même manière vers l’arrière que vers l’avant, par exemple, madame ou nursesrun.
      • Solution
        import 'dart:io';
        void main() {
          print("Veuillez saisir une chaîne de caractère");
          String? chaine = stdin.readLineSync()!;
          bool resultat = palindrome(chaine);
          if (resultat == true) {
            print("La chaîne $chaine est un plaindrome");
          } else {
            print("La chaîne $chaine n'est pas un plaindrome");
          }
        }
        bool palindrome(String txt) {
          for (int index = 0; index < txt.length ~/ 2; index++) {
            if (txt[index] != txt[txt.length - index - 1]) return false;
          }
          return true;
        }
    • App03
      • Écrire un programme Dart qui demande à l'utilisateur de saisir un mot. Selon que le mot est de type String affiche à l'utilisateur "le mot saisie est une chaine de caractère, si le mot est de type int affiche le nombre est pair ou impair.
      • Solution



Riadh HAJJI

Abonnez vous à notre chaîne YouTube gratuitement