By using this site, you agree to the Privacy Policy and Terms of Use.
موافق
عرب فلاترعرب فلاتر
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
قراءة: الدرس 52: شرح كلمة Late في لغة دارت (Late in 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 لتسريع تطوير التطبيقات

17
لديك حساب موجود؟ تسجيل الدخول
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
© جميع الحقوق محفوظة موقع عرب فلاتر 2023
عرب فلاتر > Dart > الدرس 52: شرح كلمة Late في لغة دارت (Late in Dart)
Dart

الدرس 52: شرح كلمة Late في لغة دارت (Late in Dart)

عبدالله يوسف
أخر تحديث 2024/11/15
بواسطة عبدالله يوسف اضف تعليق 5 دقيقة للقراءة 2694 مشاهدات 8
شارك
شرح كلمة Late في لغة دارت (Late in Dart)
شرح كلمة Late في لغة دارت (Late in Dart)
شارك

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

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

المحتويات
مثال 1: كلمة Late في لغة دارتمثال 2: كلمة Late في لغة دارتمثال 3: كلمة Late في لغة دارتمثال 4: كلمة Late في لغة دارتمثال 5: كلمة Late في لغة دارت

في لغة دارت، تُستخدم كلمة Late لتعريف متغير أو حقل سيتم تهيئته في وقت لاحق. تُستخدم هذه الكلمة لتعريف متغير غير قابل للقيمة الفارغة (non-nullable) والذي لم يتم تهيئته في وقت الإعلان عنه.


مثال 1: كلمة Late في لغة دارت

في هذا المثال، يتم تعريف المتغير “name” كمتغير من نوع “String” بوصفه متغيرًا متأخرًا (late variable). يتم تهيئة المتغير “name” في داخل الدالة الرئيسية “main”.

// late variable
late String name;

void main() {
  // تعيين قيمة للمتغير المتأخر
  name = "John";
  print(name);
}

نتيجة الكود:

John

عند استخدام كلمة late قبل إعلان المتغير، فإنك تُخبر دارت بالنقاط التالية:

  • لا تُعيّن قيمة لهذا المتغير حاليًا.
  • ستقوم بتعيين القيمة في وقت لاحق.
  • ستتأكد من أن المتغير لديه قيمة قبل استخدامه.

ملاحظة: كلمة “late” تعتبر عقدًا بينك وبين دارت. فأنت تخبر دارت أنك ستقوم بتعيين قيمة للمتغير قبل استخدامه. إذا لم تقم بتعيين قيمة للمتغير قبل استخدامه، فسيتم ظهور خطأ من قبل دارت.


مثال 2: كلمة Late في لغة دارت

في هذا المثال، يوجد كلاس يحمل اسم “Person” ولديه متغير “name”. يتم تعريف المتغير “name” بوصفه متغيرًا متأخرًا (late variable).

class Person {
  // متغير متأخر
  late String name;

  void greet() {
    print("مرحبًا $name");
  }
}

void main() {
  Person person = Person();
  // يتم تهيئة المتغير المتأخر هنا
  person.name = "John";
  person.greet();
}

نتيجة الكود:

مرحبًا John

استخدام كلمة “late” في لغة دارت له حالتين:

  1. تعريف متغير أو حقل غير قابل للقيمة الفارغة (non-nullable) والذي لم يتم تهيئته في وقت الإعلان عنه.
  2. تأجيل تهيئة متغير أو حقل حتى يتم الوصول إليه لأول مرة. ويُستخدم هذا في حالة تجنب حساب قيمة غير ضرورية.


مثال 3: كلمة Late في لغة دارت

في هذا المثال، لم يتم استدعاء دالة “provideCountry” عند إعلان المتغير “value”. تُستدعى دالة “provideCountry” فقط عند استخدام المتغير “value”. يُستخدم تأخير التهيئة لتجنب الحسابات غير الضرورية.

// دالة
String provideCountry() {
  print("تم استدعاء الدالة");
  return "الولايات المتحدة";
}

void main() {
  print("البدء");
  // متغير متأخر
  late String value = provideCountry();
  print("النهاية");
  print(value);
}

نتيجة الكود:

البدء
النهاية
تم استدعاء الدالة
الولايات المتحدة


مثال 4: كلمة Late في لغة دارت

في هذا المثال، يتم استدعاء دالة “heavyComputation” عند استخدام المتغير “description”. إذا قمت بإزالة كلمة “late” من المتغير “description”، فسيتم استدعاء دالة “heavyComputation” عند إنشاء كائن من كلاس “Person”.

// كلاس Person
class Person {
  final int age;
  final String name;
  late String description = heavyComputation();

  // الـ constructor
  Person(this.age, this.name) {
    print("تم استدعاء الـ constructor");
  }

  // الدالة
  String heavyComputation() {
    print("تم استدعاء الحساب الثقيل");
    return "حساب ثقيل";
  }
}

void main() {
  // كائن من كلاس Person
  Person person = Person(10, "John");
  print(person.name);
  print(person.description);
}

نتيجة الكود:

تم استدعاء الـ constructor
John
تم استدعاء الحساب الثقيل
حساب ثقيل


مثال 5: كلمة Late في لغة دارت

في هذا المثال، يتم استدعاء الدالة “_getFullName” عند استخدام المتغير “fullName”. يتم تهيئة المتغيرات “firstName” و”lastName” عند استخدام المتغير “fullName”.

class Person {
  // تعريف متغيرات متأخرة
  late String fullName = _getFullName();
  late String firstName = fullName.split(" ").first;
  late String lastName = fullName.split(" ").last;

  // الدالة
  String _getFullName() {
    print("تم استدعاء الدالة _getFullName");
    return "John Doe";
  }
}

void main() {
  print("البدء");
  Person person = Person();
  print("الاسم الأول: ${person.firstName}");
  print("الاسم الأخير: ${person.lastName}");
  print("الاسم الكامل: ${person.fullName}");
  print("النهاية");
}

نتيجة الكود:

البدء
تم استدعاء الدالة _getFullName
الاسم الأول: John
الاسم الأخير: Doe
الاسم الكامل: John Doe
النهاية

في هذا المثال، يتم استخدام كلمة Late لتأجيل تهيئة المتغيرات “fullName” و “firstName” و “lastName” حتى يتم الوصول إليها لأول مرة. عند استخدام المتغير “fullName”، يتم استدعاء الدالة “_getFullName” للحصول على الاسم الكامل. يتم تهيئة المتغيرات “firstName” و “lastName” من خلال تجزئة الاسم الكامل.

احرص على تعيين قيمة للمتغير المتأخر قبل استخدامه، وإلا فسيتم رمي استثناء “LateInitializationError”.


كلمة Late في لغة دارت تُستخدم لتعريف متغير غير قابل للقيمة الفارغة (non-nullable) والذي لم يتم تهيئته في وقت الإعلان عنه. تساعد هذه الكلمة في تأجيل تهيئة المتغير حتى يتم الوصول إليه لأول مرة، مما يساهم في تحسين أداء التطبيق وتجنب الحسابات غير الضرورية. ومن المهم أن تعيّن قيمة للمتغير المتأخر قبل استخدامه لتجنب ظهور أخطاء.

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

Arab Flutter Community 🚀

انضم إلى مجتمع Arab Flutter
شارك هذا المقال
فيسبوك تويتر Whatsapp Whatsapp لينكد ان تلغرام نسخ الرابط
المقال السابق شرح مفهوم الـ Type Promotion في لغة دارت (Dart) الدرس 51: شرح مفهوم الـ Type Promotion في لغة دارت (Dart)
المقال التالي 10 تمارين محلولة على Null Safety في لغة دارت Dart الدرس 53: 10 تمارين محلولة على Null Safety في لغة دارت 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

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