By using this site, you agree to the Privacy Policy and Terms of Use.
موافق
عرب فلاترعرب فلاتر
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
قراءة: الدرس 50: شرح مفهوم الـ Null Safety في لغة دارت (Dart)
شارك
تسجيل الدخول
إشعار أظهر المزيد
Aa
عرب فلاترعرب فلاتر
Aa
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
Search

أقسام الموقع

استكشف جميع أقسام الموقع
قسم Dart في موقع عرب فلاتر

Dart

59 مقالات
قسم Widgets في موقع عرب فلاتر

Widgets

104 مقالات
قسم Packages في موقع عرب فلاتر

Packages

19 مقالات
قسم Tutorials في موقع عرب فلاتر

Tutorials

22 مقالات

أخر المواضيع

استكشف أخر المواضيع المنشورة
شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا
Tutorials

شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا

5
حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر
Tutorials

حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر

10
أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات
Tutorials

أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات

18
لديك حساب موجود؟ تسجيل الدخول
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
© جميع الحقوق محفوظة موقع عرب فلاتر 2023
عرب فلاتر > Dart > الدرس 50: شرح مفهوم الـ Null Safety في لغة دارت (Dart)
Dart

الدرس 50: شرح مفهوم الـ Null Safety في لغة دارت (Dart)

عبدالله يوسف
أخر تحديث 2024/11/15
بواسطة عبدالله يوسف اضف تعليق 5 دقيقة للقراءة 2436 مشاهدات 4
شارك
شرح مفهوم Null Safety في لغة دارت (Null Safety In Dart)
شرح مفهوم Null Safety في لغة دارت (Null Safety In Dart)
شارك

خدماتنا البرمجية – عرب فلاتر🚀

خدماتنا البرمجية – عرب فلاتر

تعد مفهوم الـ Null Safety في لغة البرمجة Dart ميزة تساعد المطورين في تجنب أخطاء القيمة الفارغة (Null). تُعرف هذه الميزة بصفة “Sound Null Safety” في Dart، وتسمح للمطورين بالكشف عن أخطاء القيمة الفارغة Null في وقت التحرير.

المحتويات
فوائد الـ Null Safety في لغة دارت:مشكلة القيمة الفارغة Null في دارت:كيفية تعريف قيمة فارغة Null:تعيين القيم للمتغيرات القابلة للقيمة الفارغة Null:استخدام المتغيرات القابلة للقيمة الفارغة Null:أمثلة على الـ Null Safety في لغة دارت:مثال 1: استخدام الـ Null Safety في لغة دارتمثال 2: تعريف قائمة بعناصر قابلة للقيمة الفارغةمثال 3: استخدام الـ Null Safety في دوال Dartمثال 4: تعريف دالة بمعامل قابل للقيمة الفارغة Null

فوائد الـ Null Safety في لغة دارت:

  • كتابة كود آمن.
  • تقليل فرص حدوث تعطل التطبيقات.
  • سهولة العثور على الأخطاء في الكود وإصلاحها.

مشكلة القيمة الفارغة Null في دارت:

يُعاني المبرمجون من صعوبة في التعامل مع القيم الفارغة Null، حيث ينسون أن القيم الفارغة قد تتسبب في تعطل البرنامج. عندما يتعلق الأمر بالقيم الفارغة، فإنها تشبه قنبلة موقوتة في العالم الحقيقي تنتظر الفرصة المناسبة لتفجير البرنامج.

في الأساس، في Dart، العديد من المتغيرات والحقول هي غير قابلة للقيمة الفارغة بشكل افتراضي، وهذا يعني أنه لا يمكن أن تكون لديها قيمة فارغة Null ما لم تسمح بذلك صراحة.


كيفية تعريف قيمة فارغة Null:

باستخدام الـ Null Safety في Dart، لا يمكنك توفير قيمة فارغة افتراضيًا. إذا كنت متأكدًا بنسبة 100٪ من استخدام القيمة الفارغة، يمكنك استخدام عامل الاستفهام (?) بعد إعلان النوع.
مثال:

// تعريف متغير قابل للقيمة الفارغة Null باستخدام ?
String? name;

يقوم هذا المثال بتعريف متغير يسمى name والذي يمكن أن يكون قيمته فارغة (null) أو قيمة نصية.


تعيين القيم للمتغيرات القابلة للقيمة الفارغة Null:

يمكنك تعيين قيمة للمتغيرات القابلة للقيمة الفارغة بنفس الطريقة التي تعين بها قيمة لأي متغير آخر. ومع ذلك، يمكنك أيضًا تعيين القيمة الفارغة لها.
مثال:

void main(){
   // تعريف متغير قابل للقيمة الفارغة Null باستخدام ?
   String? name;

   // تعيين قيمة "John" للمتغير name
   name = "John";

   // تعيين القيمة الفارغة Null للمتغير name
   name = null;

   // طباعة قيمة المتغير name
   print(name);
}

نتيجة الكود:

null

استخدام المتغيرات القابلة للقيمة الفارغة Null:

يمكنك استخدام المتغيرات القابلة للقيمة الفارغة Null بعدة طرق. هنا بعض الأمثلة:

  1. يمكنك استخدام عبارة if للتحقق مما إذا كان المتغير قيمته فارغة Null أم لا.
  2. يمكنك استخدام عامل التعجب (!)، والذي يعيد القيمة الفارغة إذا كان المتغير فارغًا Null.
  3. يمكنك استخدام عامل التعويض (??) لتعيين قيمة افتراضية إذا كان المتغير فارغًا Null.

أمثلة على الـ Null Safety في لغة دارت:

مثال 1: استخدام الـ Null Safety في لغة دارت

void main(){
   // تعريف متغير قابل للقيمة الفارغة Null باستخدام ?
   String? name;

   // تعيين قيمة "John" للمتغير name
   name = "John";

   // تعيين القيمة الفارغة للمتغير name
   name = null;

   // التحقق مما إذا كان المتغير name فارغًا باستخدام عبارة if
   if(name == null){
      print("الاسم فارغ");
   }

   // استخدام عامل التعويض (??) لتعيين قيمة افتراضية
   String name1 = name ?? "غريب";
   print(name1);

   // استخدام عامل التعجب (!) لإرجاع القيمة الفارغة Null إذا كان المتغير name فارغًا
   String name2 = name!;
   print(name2);
}

نتيجة الكود:

الاسم فارغ
غريب
Uncaught TypeError: Cannot read properties of null (reading 'toString')Error: TypeError: Cannot read properties of null (reading 'toString')

مثال 2: تعريف قائمة بعناصر قابلة للقيمة الفارغة

يمكنك أيضًا تخزين القيم الفارغة في قوائم. في هذا المثال، القائمة items تحتوي على عناصر من نوع int?، والتي يمكن أن تحتوي على قيم فارغة بالإضافة إلى أعداد صحيحة.

void main() {
  // قائمة من الأعداد الصحيحة القابلة للقيمة الفارغة Null
  List<int?> items = [1, 2, null, 4];
  print(items);
}

نتيجة الكود:

[1, 2, null, 4]

مثال 3: استخدام الـ Null Safety في دوال Dart

في هذا المثال، تحتوي الدالة printAddress على معامل يسمى address من نوع String، وإذا قمت بتمرير قيمة فارغة (null) إلى هذه الدالة، ستتلقى خطأ أثناء التحرير.

void printAddress(String address) {
  print(address);
}

void main() {
  printAddress(null); // يعطي خطأ
}

نتيجة الكود:

Error: Compilation failed.

مثال 4: تعريف دالة بمعامل قابل للقيمة الفارغة Null

إذا كنت متأكدًا بنسبة 100٪، فيمكنك استخدام علامة الاستفهام (?) بعد نوع المعامل لتعريفه كقابل للقيمة الفارغة Null.

void printAddress(String? address) {
  print(address);
}

void main() {
  printAddress(null); // الناتج: null
}

نتيجة الكود:

null


هذا هو ملخص موجز لمفهوم الـ Null Safety في لغة Dart. هذه الصفة تساعد المطورين في تجنب الأخطاء المرتبطة بالقيم الفارغة Null وتحسين أمان التطبيقات. باستخدام القيم الفارغة بشكل صحيح، يمكنك تحسين جودة الكود الخاص بك وتجنب الأخطاء المحتملة.

Arab Flutter Community 🚀

انضم إلى مجتمع Arab Flutter
شارك هذا المقال
فيسبوك تويتر Whatsapp Whatsapp لينكد ان تلغرام نسخ الرابط
المقال السابق شرح مفهوم الـ Generics في لغة دارت (Generics In Dart) الدرس 49: شرح مفهوم الـ Generics في لغة دارت (Generics In Dart)
المقال التالي شرح مفهوم الـ Type Promotion في لغة دارت (Dart) الدرس 51: شرح مفهوم الـ Type Promotion في لغة دارت (Dart)
Avatar of عبدالله يوسف
بواسطة عبدالله يوسف Founder and CEO at ArabFlutter
تابع:
أنا عبدالله يوسف، مهندس مصري ومؤسس موقع عرب فلاتر، ملهم بشغف التكنولوجيا والإبداع. كمصمم مواقع ومبرمج تطبيقات موبايل باستخدام Flutter، أستمتع بخلق عوالم رقمية فريدة ومبتكرة. تتجلى مواهبي في تصميم وتطوير واجهات مستخدم تفاعلية، حيث يمزج الجانب الجمالي بالدقة الهندسية. ما يميزني هو إلمامي الواسع بتقنيات البرمجة والتصميم، ومقدرتي على تطوير تطبيقات متنوعة عبر منصات مختلفة. أعتبر نفسي مبدعًا وملتزمًا، حيث أسعى دائمًا لتحقيق تحسين مستمر في مهاراتي وتقنياتي. أستمتع بتحديات العمل الجماعي وأؤمن بأهمية الابتكار والتطور. بفضل إبداعي والتزامي، أسعى لتقديم حلول فعّالة تلبي توقعات العملاء وتفوق عن المألوف.
اترك تعليقا اترك تعليقا

اترك تعليقاً إلغاء الرد

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا
شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا
Tutorials
حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر
حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر
Tutorials
أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات
أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات
Tutorials
طريقة انشاء المجلدات باستخدام Dart
طريقة انشاء المجلدات باستخدام كود Dart تلقائيًا
Tutorials

مقالات ذات الصلة

اطلع على المزيد من المقالات المتعلقة بهذا الموضوع!
شرح العوازل في لغة دارت (Isolates in Dart)
Dart

شرح العوازل في لغة دارت (Isolates in Dart)

8
شرح الـ Stream في لغة دارت (Stream in Dart)
Dart

الدرس 57: شرح الـ Stream في لغة دارت (Stream in Dart)

8
شرح عبارات async & await في لغة دارت (Dart)
Dart

الدرس 56: شرح عبارات async & await في لغة دارت (Dart)

6
شرح مفهوم الـ Future في لغة دارت (Future In Dart)
Dart

الدرس 55: شرح مفهوم الـ Future في لغة دارت (Future In Dart)

6
شرح مفهوم الـ Asynchronous في لغة دارت (Dart)
Dart

الدرس 54: شرح مفهوم الـ Asynchronous في لغة دارت (Dart)

5
10 تمارين محلولة على Null Safety في لغة دارت Dart
Dart

الدرس 53: 10 تمارين محلولة على Null Safety في لغة دارت Dart

5
أظهر المزيد
شعار موقع عرب فلاتر شعار موقع عرب فلاتر

About US

Quick Links

  • خدماتنا
  • من نحن
  • اتصل بنا
  • اتفاقية استخدام
  • سياسة الخصوصية
© جميع الحقوق محفوظة موقع عرب فلاتر 2023
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
adbanner
تم اكتشاف مانع إعلانات
مرحبًا، يرجى إيقاف مانع الإعلانات. الإعلانات تُساهم في دعم موقعنا وتغطية جزء من تكاليف الاستضافة وتطوير المحتوى. شكرًا لتفهمك ودعمك.
Okay, I'll Whitelist
Welcome Back!

Sign in to your account

هل نسيت كلمة المرور؟