تعتبر الدوال functions جزءًا أساسيًا في لغة برمجة دارت، حيث تقوم بتنفيذ مهمة محددة عند استدعائها. تأتي الدوال في دارت بعدة أشكال وأنواع، ونحن سنتعرف في هذه المقالة على أربعة أنواع رئيسية للدوال وهي:
دالة بدون معاملات ولا ترجع قيمة
هذا النوع من الدوال لا يستلزم تمرير أي معاملات إليها، ولا يُرجع قيمة بعد الانتهاء من تنفيذها. اليكم مثال على هذا النوع من الدوال:
void printName() {
print("My name is John Doe.");
}
void main() {
printName();
}
نتيجة الكود:
My name is John Doe.
في هذا المثال، تم تعريف الدالة printName التي لا تحتاج لأي معاملات ولا ترجع قيمة. بمجرد استدعاء الدالة printName في دالة main، تتم طباعة النص “My name is John Doe.” على الشاشة.
يمكننا أيضًا إضافة المزيد من الأمثلة لهذا النوع من الدوال للتوضيح، كالتالي:
void printGreeting() {
print("Hello, Dart!");
}
void main() {
printGreeting();
}
نتيجة الكود:
Hello, Dart!
دالة بمعاملات ولا ترجع قيمة
في هذا النوع من الدوال، يتم تمرير معاملات إلى الدالة ولكنها لا تقوم بإرجاع قيمة بعد الانتهاء من تنفيذها. اليكم مثالًا توضيحيًا:
void printName(String name) {
print("Welcome, $name.");
}
void main() {
printName("John");
}
نتيجة الكود:
Welcome, John.
في هذا المثال، تم تعريف الدالة printName التي تأخذ معاملًا بنوع String يُمثل اسمًا، ولكنها لا تقوم بإرجاع قيمة. عند استدعاء الدالة printName في دالة main وتمرير الاسم “John” كمعامل، يتم طباعة الترحيب “Welcome, John.” على الشاشة.
يمكننا أيضًا إضافة المزيد من الأمثلة لهذا النوع من الدوال للتوضيح، كالتالي:
void calculateArea(double length, double width) {
double area = length * width;
print("The area is $area square units.");
}
void main() {
double l = 5.0;
double w = 3.0;
calculateArea(l, w);
}
نتيجة الكود:
The area is 15.0 square units.
دالة بدون معاملات وترجع قيمة
هذا النوع من الدوال لا يستلزم تمرير أي معاملات إليها، ولكنها تقوم بإرجاع قيمة بعد الانتهاء من تنفيذها. اليكم مثالًا توضيحيًا:
String getGreeting() {
return "Hello, Dart!";
}
void main() {
String greeting = getGreeting();
print(greeting);
}
نتيجة الكود:
Hello, Dart!
في هذا المثال، تم تعريف الدالة getGreeting التي لا تحتاج لأي معاملات ولكنها ترجع قيمة من نوع String. عند استدعاء الدالة getGreeting في دالة main وتخزين القيمة المُرجعة في متغير greeting، يتم طباعة التحية “Hello, Dart!” على الشاشة.
دالة بمعاملات وترجع قيمة
في هذا النوع من الدوال، يتم تمرير معاملات إلى الدالة وتقوم بإرجاع قيمة بعد الانتهاء من تنفيذها. اليكم مثالًا توضيحيًا:
int multiply(int a, int b) {
return a * b;
}
void main() {
int x = 5;
int y = 3;
int result = multiply(x, y);
print("The result is $result.");
}
نتيجة الكود:
The result is 15.
في هذا المثال، تم تعريف الدالة multiply التي تأخذ معاملين بنوع int وتقوم بإرجاع قيمة من نوع int تمثل حاصل ضرب العددين. عند استدعاء الدالة multiply في دالة main وتمرير الأعداد 5 و 3 كمعاملات، يتم حساب الناتج 15 وتخزينه في المتغير result، ومن ثم يتم طباعة النتيجة “The result is 15.” على الشاشة.
وهذا مثالًا توضيحيًا أخر:
double calculateAverage(List<double> numbers) {
double sum = 0.0;
for (double num in numbers) {
sum += num;
}
return sum / numbers.length;
}
void main() {
List<double> grades = [80.0, 90.0, 75.0, 85.0, 95.0];
double average = calculateAverage(grades);
print("The average grade is $average.");
}
نتيجة الكود:
The average grade is 85.0.
في هذا المثال، تم تعريف الدالة calculateAverage التي تأخذ قائمةً من الأعداد بنوع double وتقوم بحساب المتوسط الحسابي لتلك الأعداد. بعد حساب المتوسط، يتم إرجاع القيمة المحسوبة من الدالة. عند استدعاء الدالة calculateAverage في دالة main وتمرير قائمة الدرجات، يتم حساب المتوسط وتخزينه في المتغير average، ثم يتم طباعة النتيجة “The average grade is 85.0.” على الشاشة.
يمكننا أيضًا إضافة المزيد من الأمثلة لهذا النوع من الدوال للتوضيح، كالتالي:
bool isEven(int number) {
return number % 2 == 0;
}
void main() {
int num = 7;
bool isNumEven = isEven(num);
if (isNumEven) {
print("$num is even.");
} else {
print("$num is odd.");
}
}
نتيجة الكود:
7 is odd.
في هذا المثال، تم تعريف الدالة isEven التي تأخذ عددًا بنوع int وتقوم بالتحقق مما إذا كان العدد زوجيًا أم لا. إذا كان العدد زوجيًا، يتم إرجاع القيمة true، وإلا فإنه يتم إرجاع القيمة false. عند استدعاء الدالة isEven في دالة main وتمرير العدد 7 كمعامل، يتم التحقق من أن العدد فردي وبالتالي يتم طباعة النص “7 is odd.” على الشاشة.
في هذه المقالة، قمنا بتوضيح أربعة أنواع رئيسية للدوال functions في لغة برمجة دارت. تعرفنا على الدوال بدون معاملات ولا قيمة إرجاع، والدوال بمعاملات ولا قيمة إرجاع، والدوال بدون معاملات ولها قيمة إرجاع، والدوال بمعاملات ولها قيمة إرجاع. كل نوع من هذه الدوال له استخداماته ويمكن تنفيذه بطرق مختلفة حسب احتياجات المطور. يمكنك استخدام هذه المفاهيم لتطوير برامج متعددة المهام وتحقيق العديد من الوظائف المختلفة.




