اذهب إلى المحتوى
  • 0

مشكلة Null Safety في لغة dart واطار العمل flutter

ناصر اليامي ممممم

السؤال

السلام عليكم شباب انا تعبت من ال null safety ممكن احد يلقالي حل كل ما اسوي اي شيئ له علاقة بــ ال setState دائمأ اواحه مشاكل مثل هاذي ممكن شرح او توضيح لل null safety و حل لمشكلتي و شكرا .....

 

 

 

as.png

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

أولا يجب فهم ألية عمل Null Safety . 

Null Safety  بسيطة يعني أن المتغير لا يمكن أن يحتوي على قيمة "خالية" ما لم تتم تهيئته مع قيمة خالية لهذا المتغير. مع الأمان الفارغ ، سيتم الآن عرض جميع أخطاء عدم الرجوع في وقت التشغيل في وقت الترجمة.

String name = null ; // هذا يعني أن اسم المتغير له قيمة فارغة.

مبدأ Null Safety 

  • غير قابلة للإلغاء افتراضيًا: بشكل افتراضي ، لا تكون متغيرات Dart قابلة للإلغاء ما لم تحدد صراحة أنها يمكن أن تكون خالية. هذا لأن الخيار non-null كان إلى حد بعيد الخيار الأكثر شيوعًا في أبحاث API.
  • قابل للتبني بشكل متزايد: الهجرة إلى الأمان الفارغ أمر متروك لك تمامًا. يمكنك اختيار ما تريد ترحيله إلى أمان فارغ ومتى. يمكنك الترحيل بشكل تدريجي ، والجمع بين الكود الفارغ والآمن غير الخالي في نفس المشروع.
  • صوت كامل: نتيجة لسلامة Dart الخالية من الصوت ، يمكن إجراء تحسينات على المترجم. إذا قرر نظام النوع أن شيئًا ما ليس فارغًا ، فلا يمكن أن يكون فارغًا. يؤدي الأمان الفارغ إلى عدد أقل من الأخطاء وثنائيات أصغر وتنفيذ أسرع بمجرد ترحيل مشروعك بالكامل وتبعياته إلى أمان فارغ.

أنواع Null 

String? carName;  // initialized to null by default
int? marks = 36;  // initialized to non-null
marks = null; // can be re-assigned to null

عامل التأكيد (!)

استخدم عامل التوكيد الفارغ (!) لجعل Dart يتعامل مع تعبير nullable على أنه غير قابل للإلغاء إذا كنت متأكدًا من أنه ليس فارغًا.

int? someValue = 30;
int data = someValue!; // هذا صالح لأن القيمة غير قابلة للإلغاء

الكلمة الرئيسية المتأخرة Late Keyword

نظرًا لأننا نعلم أن جميع المتغيرات غير خالية افتراضيًا ، يمكننا استخدام إما؟ عامل التشغيل أو الكلمة الأساسية المتأخرة.

String? carName;   // using ? operator
late String bikeName;  // using "late" keyword

اذن حاول تغيير اسناد المتغير en_or_dis الى القيمة false أو true 

bool en_or_dis = false;

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...