Fonctions dans Dart
1. Qu'est-ce qu'une fonction ?
Dans le langage de programmation Dart, une fonction (function) est un bloc de code nommé, qui peut prendre des paramètres et renvoyer une valeur ou rien du tout, et ne s'exécuter que lorsqu'elle est convoquée. Les fonctions divisent les grandes tâches en petites parties et effectuent des opérations spécifiques de ce programme. Ce processus augmente la possibilité de réutilisation du code et améliore l'approche modulaire du programme.
return_type function_name(arguments) {
// Statements
}
Remarque : À l'instar de JavaScript, Dart n'autorise pas deux fonctions ayant le même nom, même si elles disposent des paramètres différents.
2. La fonction régulière
La syntaxe pour déclarer une fonction régulière :
return_type function_name(data_type1 arg1, data_type2 arg2, data_typeN argN) {
// Statements
}
Utiliser le mot-clef void (ou vide) comme un type de renvoie si la fonction ne renvoie rien du tout.
void function_name(data_type1 arg1, data_type2 arg2, data_typeN argN) {
// Statements
}
// Same as:
function_name(data_type1 arg1, data_type2 arg2, data_typeN argN) {
// Statements
}
Par exemple : La fonction sum prend deux arguments de type int, et renvoie une valeur de type int.
function_ex1.dart
int sum(int a, int b) {
return a + b;
}
void main() {
var result = sum(100, 200); // 300
print('result = $result');
}
Par exemple : La fonction greeting accepte un paramètre String et ne renvoie rien du tout.
function_ex2.dart
void greeting(String name) {
var s = 'Hello $name';
print(s);
}
void main() {
// Call the function:
greeting('Tom'); // Hello Tom
}
3. Closure (clôture)
Dans le langage de programmation Dart, Closure (clôture) est une fonction spéciale.
- A l'instare d'une fonction, une clôture est un bloc d'instructions avec des paramètres et peut renvoyer une valeur ou rien du tout.
- A l'inverse d'une fonction, une clôture n'a pas de nom. Cependant, vous pouvez l'identifier grâce à une variable.
Voir l'article détaillé sur Closure :
4. Le paramètre optionnel
Comme mentionné ci-dessus, Dart n'accepte pas les fonctions ayant le même nom, mais une fonction peut inclure des paramètres optionnels, qui doivent être les derniers de la liste des paramètres.
La syntaxe :
return_type function_name(typeM argM, typeN argN, [typeP? argP, typeQ? argQ]) {
// statement(s)
}
Ou la syntaxe - le paramètre optionnel avec la valeur par défaut :
return_type function_name(typeM argM, typeN argN,
[typeP? argP = defaultValueP, typeQ? argQ]) {
// statement(s)
}
Par exemple :
function_optional_args_ex1.dart
String concat(String s1, String s2, [String? s3]) {
if (s3 != null) {
return s1 + s2 + s3;
}
return s1 + s2;
}
double sum(double v1, double v2, [double? v3, double? v4]) {
return v1 + v2 + (v3 ?? 0) + (v4 ?? 0);
}
void main() {
String result1 = concat('One', 'Two');
print('result1: $result1');
String result2 = concat('One', 'Two', 'Three');
print('result2: $result2');
double value1 = sum(1, 2, 3, 4);
print('value1: $value1');
double value2 = sum(1, 2, 3);
print('value2: $value2');
double value3 = sum(1, 2);
print('value3: $value3');
}
Output:
result1: OneTwo
result2: OneTwoThree
value1: 10.0
value2: 6.0
value3: 3.0
5. Le paramètre optionnel nommé
Les paramètres optionnels nommés sont des paramètres entre accolades { } et placés à la fin de la liste des paramètres de la fonction. Tous ces paramètres ont des valeurs par défaut.
La syntaxe :
return_type function_name(typeM argM, typeN argN,
{typeP argP = defaultValueP, typeQ argQ = defaultValueQ}){
// statement(s)
}
Par exemple :
function_optional_named_args_ex1.dart
String concatAndTrim(String s1, String s2, {bool trimLeft = true, bool trimRight = true}) {
var s = s1 + s2;
if (trimLeft && trimRight) {
return s.trim();
} else if (trimLeft) {
return s.trimLeft();
} else if (trimRight) {
return s.trimRight();
}
return s;
}
void main() {
var s1 = ' One ';
var s2 = ' Two ';
var result1 = concatAndTrim(s1, s2); // trim left and right
print('result1: -->$result1<-- (Trim left and right)');
var result2 = concatAndTrim(s1, s2, trimLeft: false); // trim right only
print('result2: -->$result2<-- (Trim right only)');
var result3 = concatAndTrim(s1, s2, trimRight: false); // trim left only
print('result3: -->$result3<-- (Trim left only)' );
var result4 =
concatAndTrim(s1, s2, trimLeft: false, trimRight: false); // no trim
print('result4: -->$result4<!-- (No Trim)');
}
Output:
result1: -->One Two<-- (Trim left and right)
result2: --> One Two<-- (Trim right only)
result3: -->One Two <-- (Trim left only)
result4: --> One Two <!-- (No Trim)
Tutoriels de programmation Dart
- Type de données Boolean dans Dart
- Fonctions dans Dart
- Fermetures dans Dart
- Méthodes dans Dart
- Propriétés en Dart
- Programmation Dart avec l'outil en ligne DartPad
- Installer Dart SDK sur Windows
- Installer Visual Studio Code sur Windows
- Installer Dart Code Extension pour Visual Studio Code
- Installer Dart Plugin pour Android Studio
- Exécutez votre premier exemple Dart en Visual Studio Code
- Exécutez votre premier exemple Dart en Android Studio
- Parsing JSON avec dart:convert
- Le Tutoriel de Dart List
- Variables dans Dart
- Le Tutoriel de Dart Map
- Les Boucles en Dart
- Analyser Dart JSON avec le package dart_json_mapper
- Qu'est-ce que Transpiler?
Show More