عند تعريف دالة في 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
لإنهاء الدالة مبكرًا دون إرجاع قيمة.
💡 أي نوع من الدوال تستخدمه أكثر في مشاريعك؟ 🚀