Travailler avec les fonctions dans Dart

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.

En programmation, une fonction ou une méthode est un ensemble de codes qui exécute une tâche spécifique. Les blocs de code sont nommés, comme des variables.

fonctions Dart

Cette fonction est définit avec un nom que nous allons appeler à chaque fois que nous voulons effectuer une certaine tâche.

En fait, l’utilisation d’une fonction Dart vous évite de répéter la même logique dans un programme. Tout ce que nous faisons est de mettre de la logique dans une fonction et d’appeler le nom de la fonction selon nos besoins.

Les fonctions Dart en action

Tout d’abord, il faut distinguer entre les fonctions Dart intégrées comme print() et celles définies par l’utilisateur.

Pour créer une fonction nous commençons par la définir en lui attribuons un nom à l’extérieur de main(). Le corps d’une fonction Dart se compose d’instructions qui sont exécutées lorsqu’elle est appelée. Nous utilisons le mot-clé return pour renvoyer la valeur de la fonction. De plus, le corps est délimité par deux accolades {}. Pour appeler une fonction Dart, nous spécifions son nom suivi de parenthèses (). En fait, elle peut être définie avec ou sans paramètres. N’oubliez pas de spécifier le type retourné par la fonction.

Une fonction Dart, utilise le mot-clé return pour renvoyer une valeur. L’ instruction return est facultative, et si elle n’est pas utilisée, la fonction renvoie null. Il ne peut y avoir qu’une seule instruction return dans une fonction et aucun code après elle.

À la différence de print(), l’instruction return permet de stocker la valeur renvoyée dans une variable.

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;
}
Résultat : 14

Notre fonction som() prend deux paramètres obligatoires et retourne leur somme.

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 ou positionnels.

Voici un exemple de paramètres obligatoires :

void main() {
  pays('France', 'Allemagne', 'Belgique');
}
void pays(String name1, String name2, String name3) {
  print("J'habite en $name1");
  print("J'habite en $name2");
  print("J'habite en $name3");
}

Le mot clé void veut dire que la fonction ne retourne aucune valeur.

Cependant, nous pouvons ne pas spécifier les paramètres optionnels lors de l’appel d’une fonction. Les paramètres facultatifs doivent être déclarés après les paramètres obligatoires. De plus, les paramètres optionnels peuvent avoir des valeurs par défaut, qui seront utilisées, si vous ne les spécifiez pas lors de l’appel de la fonction.

Si un paramètre optionnels ne reçoit pas de valeur, il est défini sur NULL.

Les paramètres optionnels de position

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.

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

Même si nous n’avons pas passé un troisième argument nous n’avons pas d’erreur. Il y a une valeur null dans le résultat car aucune valeur n’est affectée au paramètre name3.

Les paramètres optionnels nommés

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. Nous pouvons les appeler en utilisant param : value.

void message(String param1, {String? param2}){
  print('param1 : $param1');
  print('param2 : $param2');
}

void main() {
  message("Hello", param2: "World");
  print("*" * 20); //afficher 20 astérisques
  message("Hello");
}

Exécution du code.

param1 : Hello
param2 : World
********************
param1 : Hello
param2 : null

Lorsque nous n’avons pas spécifié param2, il a été retourné avec une valeur null et la fonction a été exécutée. Si nous utilisons des paramètres obligatoires nous aurons une erreur.

Notez l’utilisation du point d’interrogation après String. En fait, depuis Dart 2.12, le langage prend en charge la sécurité nulle. Ici, ?indique explicitement qu’une variable ou un paramètre peut être nul.

Les paramètres par défaut

Il est possible de déclarer des valeurs par défaut avec les paramètres optionnels. Toutefois, elles seront utilisées si nous ne passons aucune valeur à ces paramètres. Le signe = est utilisé pour affecter une valeur par défaut à un paramètre.

void message(String param1, {String? param2 = "Dart"}){
  print('param1 : $param1');
  print('param2 : $param2');
}

void main() {
  message("Hello", param2: "World");
  print("*" * 20);
  message("Hello");
}
param1 : Hello
param2 : World
********************
param1 : Hello
param2 : Dart

Lorsque nous n’avons pas transmis de valeur au paramètre param2, la fonction a retourné la valeur par défaut world.

Utiliser l’opérateur flèche dans une fonction Dart

Dart prend également en charge une syntaxe abrégée pour des fonctions avec une seule expression. Cette syntaxe utilise une flèche au lieu de return.

String direeBonjour(String name) => 'Bonjour, $name!';

main() {
    print(direeBonjour('Sarah'));
}
Bonjour, Sarah!

Les fonctions Dart anonymes

Une fonction anonyme ou lambda ne possède pas de nom. On trouve les paramètres à l’intérieur des parenthèses () et le corps commence à l’intérieur des accolades {} . Un exemple courant est l’itération de liste. Nous pouvons passer une fonction anonyme à la méthode forEach.

main() {
  var maListe = [1,2,3];
  maListe.forEach((n){
    print(n);
  });
}
1
2
3

En fait, une méthode est une fonction qui se trouve à l’intérieur d’une classe. La classe est constituées de variables et de fonctions que vous pouvez utiliser.

Nous étudierons les classes prochainement.

Voila pour les fonctions, et rappelez-vous que la pratique et la répétition sont la clé de chaque discipline !

Travailler avec les fonctions dans Dart

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Retour en haut