Funktionen in Dart
1. Was ist Funktion?
In der Programmiersprache Dart ist eine Funktion ein benannter Codeblock, der Parameter annehmen und einen Wert oder Rückgabewert zurückgeben kann und nur ausgeführt wird, wenn er aufgerufen wird. Funktionen unterteilen große Aufgaben in kleine Teile und führen bestimmte Operationen dieses Programms aus. Dieser Prozess erhöht die Wiederverwendbarkeit des Codes und verbessert den modularen Ansatz des Programms.
return_type function_name(arguments) {
// Statements
}
Hinweis: Ähnlich wie bei JavaScript erlaubt Dart keine zwei gleichnamigen Funktionen, auch wenn diese unterschiedliche Parameter haben.
2. Die reguläre Funktion:
Die Syntax zum Deklarieren einer regulären Funktion:
return_type function_name(data_type1 arg1, data_type2 arg2, data_typeN argN) {
// Statements
}
Verwenden Sie das Schlüsselwort void (oder empty) als Rückgabetyp, wenn die Funktion nichts zurückgibt.
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
}
Beispiel: Die Funktion sum nimmt zwei Argumente vom Typ int und gibt einen Wert vom Typ int zurück.
function_ex1.dart
int sum(int a, int b) {
return a + b;
}
void main() {
var result = sum(100, 200); // 300
print('result = $result');
}
Beispiel: Die Funktion greeting akzeptiert einen Parameter String und gibt nichts zurück.
function_ex2.dart
void greeting(String name) {
var s = 'Hello $name';
print(s);
}
void main() {
// Call the function:
greeting('Tom'); // Hello Tom
}
3. Closure (Schließung)
In der Programmiersprache Dart ist ein Closure eine spezielle Funktion.
- Ähnlich wie eine Funktion ist eine Closure ein Block von Anweisungen mit Parametern und kann einen Wert oder nichts zurückgeben.
- Im Gegensatz zu einer Funktion hat eine Closure keinen Namen. Sie können es jedoch durch eine Variable identifizieren
Sehen Sie den ausführlichen Artikel über Closure:
4. Optionaler Parameter
Wie oben erwähnt, erlaubt Dart keine Funktionen mit demselben Namen, aber eine Funktion kann optionale Parameter enthalten, die die letzten Parameter in der Parameterliste sein müssen.
Die Syntax:
return_type function_name(typeM argM, typeN argN, [typeP? argP, typeQ? argQ]) {
// statement(s)
}
Oder Syntax - Optionaler Parameter mit Standardwert:
return_type function_name(typeM argM, typeN argN,
[typeP? argP = defaultValueP, typeQ? argQ]) {
// statement(s)
}
Zum Beispiel:
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. Optionaler benannter Parameter
Optionale benannte Parameter (Optional Named Parameters) sind Parameter, die in geschweifte Klammern { } eingeschlossen und am Ende der Parameterliste der Funktion platziert werden. Alle diese Parameter haben Standardwerte.
Die Syntax:
return_type function_name(typeM argM, typeN argN,
{typeP argP = defaultValueP, typeQ argQ = defaultValueQ}){
// statement(s)
}
Zum Beispiel:
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)
Anleitungen Dart
- Boolescher Datentyp in Dart
- Funktionen in Dart
- Die Anleitung zu Dart Closures
- Methoden in Dart
- Eigenschaften in Dart
- Punkt-Punkt-Operator in der Dart-Sprache
- Dart-Programmierung mit dem Online-Tool DartPad
- Installieren Sie das Dart SDK unter Windows
- Installieren Sie Visual Studio Code unter Windows
- Installieren Sie die Dart Code Extension für Visual Studio Code
- Installieren Sie das Dart Plugin für Android Studio
- Führen Sie Ihr erstes Dart-Beispiel in Visual Studio Code aus
- Führen Sie Ihr erstes Dart-Beispiel in Android Studio aus
- Analysieren von JSON mit dart:convert
- Die Anleitung zu Dart List
- Variablen in Dart
- Die Anleitung zu Dart Map
- Schleifen in Dart
- Analysieren von Dart JSON mit dem Paket dart_json_mapper
- Was ist Transpiler?
Show More