Les fonctions dans Dart
Sommaire
- 1- Présentation
- 2- Définition d'une fonction Dart
- 3- Fonctions de base en Dart
- 4- Syntaxe d'une fonction
Dart
- 4.1- Paramètres
- 4.1.1- Type de retour (Return type).
- 4.1.2- Nom de la fonction (Function name).
- 4.1.3- Paramètres d'une fonction Dart (Parameters).
- 4.1.4- Valeur de retour d'une fonction Dart (Return value).
- 5- Les types de paramètres dans les fonctions Dart
- 5.1- Les paramètres obligatoires
- 5.2- Paramètres optionnels ou facultatifs
- 5.2.1- Paramètres positionnels
- 5.2.2- Paramètres nommés
- 6- Application
- 6.1- App01
- 6.2- App01
- 6.3- App02
- 6.4- App03
- 6.4.1- Cours Flutter
-
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.
-
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()
-
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).
- 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.
-
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.
-
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.
-
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.
-
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 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
-
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 .
- 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.
- 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 .
-
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 :
min
etmax
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.
- 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.
- 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.
-
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.
-
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.
-
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.
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
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.
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.
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
-
Notez ce qui suit :
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.
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.
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.
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;
}
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;
}