Return Type و void في Dart

عند تعريف دالة في Dart، يجب تحديد نوع البيانات الذي ستُرجعه الدالة، أو استخدام void إذا لم تكن تُرجع أي قيمة. في هذه المقالة، سنشرح الفرق بين void والدوال التي تُرجع قيمة (return type) مع أمثلة عملية.

🔹 1. دوال تُرجع قيمة (Return Type)

عندما تريد أن تُرجع الدالة قيمة معينة بعد تنفيذها، يجب تحديد نوع البيانات الذي سيتم إرجاعه (int, double, String, bool, List, إلخ).

✨ مثال 1: دالة تُرجع عدد صحيح (int)

int sum(int a, int b) {
  return a + b;
}

void main() {
  int result = sum(5, 3);
  print('المجموع: $result');
}
Dart

🔹 الناتج:

📌 ملاحظة:

  • sum(int a, int b) تعني أن الدالة تأخذ عددين صحيحين (int) كمعاملات.
  • return a + b; تعني أن الدالة تُرجع عددًا صحيحًا (int).

✨ مثال 2: دالة تُرجع نص (String)

String greet(String name) {
  return 'مرحبًا، $name!';
}

void main() {
  String message = greet('Ali');
  print(message);
}
Dart

🔹 الناتج:


✨ مثال 3: دالة تُرجع قيمة منطقية (bool)

bool isEven(int number) {
  return number % 2 == 0;
}

void main() {
  print(isEven(4)); // true
  print(isEven(7)); // false
}
Dart

🔹 الناتج:

true
false
Dart

✨ مثال 4: دالة تُرجع قائمة (List)

List<int> getNumbers() {
  return [1, 2, 3, 4, 5];
}

void main() {
  List<int> numbers = getNumbers();
  print(numbers);
}
Dart

🔹 الناتج:

[1, 2, 3, 4, 5]
Dart

🔹 2. دالة لا تُرجع قيمة (void Function)

عندما لا تحتاج إلى إرجاع أي قيمة من الدالة، يمكنك استخدام void.

✨ مثال 5: دالة تطبع رسالة فقط (void)

void sayHello() {
  print('مرحبا بك في Dart!');
}

void main() {
  sayHello(); // استدعاء الدالة
}
Dart

🔹 الناتج:

📌 ملاحظة:

  • لا يوجد return في الدالة لأن نوعها void.
  • تُستخدم void عندما لا يكون هناك حاجة لإرجاع أي بيانات.

✨ مثال 6: دالة تطبع عناصر القائمة (void)

void printList(List<String> names) {
  for (var name in names) {
    print('الاسم: $name');
  }
}

void main() {
  List<String> myNames = ['Ali', 'Sara', 'Omar'];
  printList(myNames);
}
Dart

🔹 الناتج:

الاسم: Ali
الاسم: Sara
الاسم: Omar
Dart

🔹 3. الفرق بين void و return type

الوظيفةدالة تُرجع قيمة (return type)دالة بدون إرجاع (void)
الاستخدامتُستخدم عندما تحتاج إلى إرجاع بيانات من الدالة.تُستخدم عندما تنفذ الدالة شيئًا فقط دون إرجاع قيمة.
الكلمة المفتاحية returnيجب أن تحتوي على return.لا تحتاج إلى return.
مثالint sum(int a, int b) { return a + b; }void sayHello() { print("Hello"); }

🔹 4. استخدام return في void

يمكنك استخدام return; فقط لإنهاء الدالة مبكرًا داخل void، ولكن بدون إرجاع قيمة.

✨ مثال 7: return داخل void لإنهاء الدالة

void checkNumber(int number) {
  if (number < 0) {
    print('رقم غير صالح!');
    return; // إنهاء الدالة مبكرًا
  }
  print('الرقم صالح: $number');
}

void main() {
  checkNumber(-5);
  checkNumber(10);
}
Dart

🔹 الناتج:

رقم غير صالح!
الرقم صالح: 10
Dart

📌 ملاحظة:

  • عند إدخال -5، يتم طباعة "رقم غير صالح!" ثم تنتهي الدالة فورًا بسبب return;.
  • عند إدخال 10، تستمر الدالة في التنفيذ.

🔹 الخلاصة

Return Type يُستخدم عندما تحتاج الدالة إلى إرجاع قيمة مثل int, String, bool, إلخ.
void يُستخدم عندما لا تُرجع الدالة أي قيمة ولكنها تؤدي مهمة معينة مثل الطباعة أو تعديل المتغيرات.
✅ يمكنك استخدام return; داخل void لإنهاء الدالة مبكرًا دون إرجاع قيمة.

💡 أي نوع من الدوال تستخدمه أكثر في مشاريعك؟ 🚀