الكائنات

📄 الأصل: objects.nfth

📦 تحميل الملف: ⬇ تحميل

🔗 عرض الملف:

	
		--- SPDX-License-Identifier: Apache-2.0
--- Copyright © The Naftah Project Authors

---*
هذا القسم يوضح كيفية تعريف المتغيرات والثوابت في لغة نفطه، مع أمثلة على أنواع البيانات المختلفة،
وكيفية بناء هياكل بيانات معقدة (كائنات أو سجلات) تحتوي على حقول متعددة.

كما يبيّن استخدام خاصية التعيين الأولي للقيم، وأنواع البيانات المخصصة، وأمثلة على التعامل مع المتغيرات المعقدة داخل النظام.

*---

--- تعريف متغير 'أ' وتعيين كائن يحتوي حقول 'أ' و 'ب' بقيم عددية
متغير أ تعيين {متغير أ تعيين ١ , متغير ب تعيين 4}

--- تعريف متغير 'أ' مع تحديد النوع (أي_نمط) وتعيين نفس الكائن السابق
متغير أ : أي_نمط تعيين {متغير أ تعيين ١ , متغير ب تعيين 4}

--- تعريف متغير 'أ' من نوع بوليان (صحيح/خطأ) ولكن يعطى كائن، للتوضيح أو التجربة
متغير أ : تعيين {متغير أ تعيين ١ , متغير ب تعيين 4}

--- تعريف متغير 'شخص' ككائن يحتوي حقول الاسم، العمر، حالة الزواج
متغير شخص تعيين {
  متغير الاسم تعيين "أنيس",
  متغير العمر تعيين 32,
  متغير متزوج تعيين خطأ
}

--- تعريف متغير 'شخص' ككائن يحتوي حقول الاسم، العمر، حالة الزواج
متغير شخص: كائن تعيين {
  متغير الاسم تعيين "أنيس",
  متغير العمر تعيين 32,
  متغير متزوج تعيين خطأ
}

--- تعريف متغير 'شخص' ككائن يحتوي حقول الاسم، العمر، حالة الزواج مع تحديد الأنواع
متغير شخص: كائن تعيين {
  متغير الاسم: تسلسل_رموز تعيين "أنيس",
  متغير العمر: قصير_جدا تعيين 32,
  متغير متزوج: منطقي تعيين خطأ
}

--- تعريف متغير 'سيارة' يحتوي بيانات الماركة، الموديل، واللون
متغير سيارة تعيين {
  متغير الماركة تعيين "بيجو",
  متغير الموديل تعيين 2021,
  متغير اللون تعيين "أبيض"
}


--- تعريف متغير 'سيارة' يحتوي بيانات الماركة، الموديل، واللون
متغير سيارة: هيكل تعيين {
  متغير الماركة تعيين "بيجو",
  متغير الموديل تعيين 2021,
  متغير اللون تعيين "أبيض"
}

--- تعريف متغير 'سيارة' يحتوي بيانات الماركة، الموديل، واللون مع تحديد الأنواع
متغير سيارة: هيكل تعيين {
  متغير الماركة: تسلسل_حروف  تعيين "بيجو",
  متغير الموديل: عدد_قصير تعيين 2021,
  متغير اللون: تسلسل_رموز تعيين "أبيض"
}

--- تعريف متغير 'فصل' يحتوي رقم الفصل، عدد الطلاب، واسم المعلم
متغير فصل تعيين {
  متغير رقم_الفصل تعيين 203,
  متغير عدد_الطلاب تعيين 18,
  متغير معلم تعيين "الأستاذ نوفل"
}

--- تعريف متغير 'عنوان' يحتوي الشارع، المدينة، والرمز البريدي
متغير عنوان تعيين {
  متغير الشارع تعيين "شارع البيئة",
  متغير المدينة تعيين "توزر",
  متغير الرمز_البريدي تعيين 2200
}

--- تعريف متغير 'مدينة' يحتوي الاسم، عدد السكان، ومرجع إلى العنوان
متغير مدينة تعيين {
  متغير الاسم تعيين "توزر",
  متغير السكان تعيين 37000,
  متغير العنوان تعيين عنوان
}

--- تعريف متغير 'بلدة' يحتوي الاسم، مرجع إلى المدينة، وعدد الأحياء
متغير بلدة تعيين {
  متغير الاسم تعيين "نفتة",
  متغير المدينة تعيين مدينة,
  متغير عدد_الأحياء تعيين 5
}

--- تعريف متغير 'النظام' يحتوي هيكل مستخدم مع عدة مستويات من البيانات (مُعرّف، بيانات التسجيل، العنوان، الدولة، الموقع)
متغير النظام تعيين {
  متغير المستخدم تعيين {
    متغير المعرف تعيين "NAF001",
    متغير الاسم تعيين "سلمى",
    متغير بيانات_التسجيل تعيين {
      متغير البريد_الإلكتروني تعيين "salma@naftah.tn",
      متغير تاريخ_التسجيل تعيين "2024-11-30",
      متغير الحالة تعيين "مفعّل"
    },
    متغير العنوان تعيين {
      متغير الشارع تعيين "شارع الواحات",
      متغير المدينة تعيين "توزر",
      متغير الدولة تعيين {
        متغير الاسم تعيين "تونس",
        متغير الرمز تعيين "TN",
        متغير الموقع تعيين {
          متغير القارة تعيين "أفريقيا",
          متغير الإحداثيات تعيين {
            متغير خط_العرض تعيين 33,9197 ,
            متغير خط_الطول تعيين 8,1335
          }
        }
      }
    }
  },
  متغير نسخة_النظام تعيين "naftah-1.0.0"
}

--- تعريف متغير 'المدينة' يحتوي الاسم، عدد السكان، ومرجع إلى البلدة
متغير المدينة تعيين {
  متغير الاسم تعيين "قبلي",
  متغير عدد_السكان تعيين 50000,
  متغير البلدة تعيين {
    متغير الاسم تعيين "سوق الأحد",
    متغير عدد_البيوت تعيين 400
  }
}

--- أمثلة على الوصول إلى الحقول داخل الكائنات متعددة المستويات باستخدام النقطتين ":"
المدينة:البلدة:عدد_البيوت

--- أمثلة على الوصول المشروط والاختياري مع وجود علامات استفهام
المدينة؟:ء:عدد_البيوت
المدينة؟:ء؟:عدد_البيوت
المدي؟:البلدة؟:عدد_البيوت
المدينة؟:البلدة؟:عددت

--- أمثلة على الوصول إلى الحقول باستخدام الأقواس المربعة []
المدينة["البلدة"]:عدد_البيوت
المدينة؟:ء["عدد_البيوت"]
المدينة؟["ء"]؟["عدد_البيوت"]
المدي؟["البلدة"]؟["عدد_البيوت"]
المدينة["البلدة"]؟["عددت"]

--- أمثلة على الوصول إلى الحقول داخل الكائنات (java Objects) متعددة المستويات باستخدام النقطتين ":" أو الأقواس المربعة []

ثابت معرف_مستخدم تعيين جافا:أدة:معرف_مستخدم(6161415689025233999؛5488940234982179551)

--- أمثلة على الوصول المشروط والاختياري مع وجود علامات استفهام
معرف_مستخدم:أكثر_سيغ_بتات
معرف_مستخدم:لشرقا_سيغ_بتات

--- أمثلة على الوصول إلى الحقول باستخدام الأقواس المربعة []
معرف_مستخدم["أكثر_سيغ_بتات"]
معرف_مستخدم["لشرقا_سيغ_بتات"]


ثابت ديناميك_رقم تعيين أورغ:داعيتاك:نفطه:مدرجة_مدرجة:لغة:ديناميك_رقم(1)
--- أمثلة على الوصول المشروط والاختياري مع وجود علامات استفهام
ديناميك_رقم؟:قيمة

--- أمثلة على الوصول إلى الحقول باستخدام الأقواس المربعة []
ديناميك_رقم؟["قيمة"]

ثابت قائمة_ تعيين جافا:أدة:صفائف_القائمة([1؛100؛0])
--- أمثلة على الوصول المشروط والاختياري مع وجود علامات استفهام
قائمة_:الحجم
قائمة_:عنصر_بيانات

--- أمثلة على الوصول إلى الحقول باستخدام الأقواس المربعة []
قائمة_["الحجم"]
قائمة_["عنصر_بيانات"]