في لغة دارت (Dart)، يُعتبر الـ Future عبارة عن قيمة أو خطأ ليس متاحًا حاليًا. يُستخدم لتمثيل قيمة محتملة أو خطأ سيكون متاحًا في وقتٍ ما في المستقبل.
كيفية إنشاء الـ Future في لغة دارت:
يمكنك إنشاء الـ Future في لغة دارت باستخدام كلاس Future. فيما يلي مثال على دالة تقوم بإرجاع Future من نوع String بعد 5 ثوانٍ:
// دالة تقوم بإرجاع Future Future<String> getUserName() async { return Future.delayed(Duration(seconds: 5), () => 'Mark'); }
يمكنك أيضًا إنشاء Future باستخدام دالة Future.value(). فيما يلي مثال آخر على دالة تقوم بإرجاع Future من نوع String فورًا:
// دالة تقوم بإرجاع Future Future<String> getUserName() { return Future.value('Mark'); }
كيفية استخدام الـ Future في لغة دارت:
يمكنك استخدام الـ Future في لغة دارت باستخدام دالة then(). فيما يلي مثال على دالة تقوم بإرجاع Future من نوع String بعد 5 ثوانٍ:
// دالة تقوم بإرجاع Future Future<String> getUserName() async { return Future.delayed(Duration(seconds: 5), () => 'Mark'); } // الدالة الرئيسية void main() { print("بداية"); getUserName().then((value) => print(value)); print("نهاية"); }
نتيجة الكود:
بداية نهاية Mark
مزيد من المعلومات عن الـ Future:
يُمثل الـ Future النتيجة لعملية غير متزامنة ويمكن أن يكون له حالتين.
حالة غير مكتملة (Uncompleted):
عند استدعاء دالة غير متزامنة، يُرجع Future غير مكتمل. هذا يعني أن الـ Future ينتظر انتهاء عملية الدالة غير المتزامنة أو حدوث خطأ.
حالة مكتملة (Completed):
يمكن أن يتم استكماله بقيمة معينة أو استكماله بخطأ. الـ Future ينتج قيمة من نوع int، والـ Future ينتج قيمة من نوع String. إذا لم يُنتج الـ Future أي قيمة، فإن نوع الـ Future هو Future.
مثال آخر: الـ Future في لغة دارت:
في هذا المثال التالي، سنقوم بإنشاء دالة middleFunction() التي تقوم بإرجاع Future. ستقوم الدالة بإرجاع الـ Future من نوع (String) بعد 5 ثوانٍ:
void main() { print("بداية"); getData(); print("نهاية"); } void getData() async{ String data = await middleFunction(); print(data); } Future<String> middleFunction(){ return Future.delayed(Duration(seconds: 5), () => "مرحبًا"); }
نتيجة الكود:
بداية نهاية مرحبًا
في المثال أعلاه، أولًا يتم طباعة “بداية”، ثم يتم طباعة “نهاية”، وبعد 5 ثوانٍ يتم طباعة “مرحبًا”.
باستخدام الـ Future في لغة دارت، يمكنك التحكم في تنفيذ العمليات الغير متزامنة والحصول على النتائج المستقبلية بطريقة سهلة وفعالة.
يعد الـ Future في لغة دارت أداة قوية للتعامل مع العمليات الغير متزامنة والحصول على النتائج في وقتٍ لاحق. يمكنك إنشاء الـ Future واستخدامه في تطبيقاتك لتحسين أداء وتنظيم العمليات. قم بتجربة استخدام الـ Future في لغة دارت واستفد من فوائده في برمجتك اليومية.