English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
تكون الوحدة مجموعة من الدوال المدمجة تحت اسم واحد في ملف واحد. بالإضافة إلى ذلك، يجب أن تكون جميع الدوال في Erlang معرفة في الوحدة.
معظم العمليات الأساسية مثل العمليات الحسابية وال�وية والعمليات البولية متاحة بالفعل، لأن الوحدة الافتراضية يتم تحميلها عند تشغيل البرنامج. يحتاج كل دالة أخرى معينة في الوحدة التي ستستخدمها إلى استخدام Module: Function (Arguments) للإشارة إليها.
يمكن استخدام الوحدة لاستدعاء نوعين من المحتويات: الدوال والخصائص. تكون الخاصيات وصفًا للوحدة نفسها، مثل اسمها، الدوال المتاحة للعالم الخارجي، مؤلف الكود، وما إلى ذلك. تكون هذه المعلومات مفيدة جدًا لأنها تخبر المُعالج كيفية تنفيذ عمله، لأنها تسمح للناس باستخراج معلومات مفيدة من الكود المُعالج دون الحاجة إلى مراجعة الكود المصدر.
تكون نحو بيانات الدالة :
-module(modulename)
في هذا السياق، modulename هو اسم الوحدة. يجب أن يكون هذا في السطر الأول من كود الوحدة. يظهر البرنامج التالي مثالًا على وحدة تُدعى helloworld.
-module(helloworld). -export([start/0]). start() -> io:fwrite("Hello World").
نتيجة الخروج للكود أعلاه هي -
Hello World
تحدد خاصيات الوحدة خصائص معينة للوحدة، وتتكون خاصيات الوحدة من علامة وقيمة.
تكون نحو خاصية الوحدة -
-Tag(Value)
البرنامج التالي يستخدم لشرح كيفية استخدام خاصيات الوحدة -
-module(helloworld). -author("TutorialPoint"). -version("1.0"). -export([start/0]). start() -> io:fwrite("Hello World").
يحدد البرنامج أعلاه خاصيتين مخصصة: author و version، تستخدم لتمثيل مؤلف البرنامج ورقم النسخة.
نتيجة الخروج للكود أعلاه هي -
Hello World
الخصائص المدمجة مسبقًا
يملك Erlang بعض الخاصيات المدمجة مسبقًا يمكن ربطها بالوحدات، لنرى.
ستستخدم الخاصيات المصدرة قائمة المعلمات والوظائف لصادرة إلى وحدات أخرى. سيحدد هذا الوحدة واجهة. رأينا هذا في المثال السابق.
export([FunctionName1/FunctionArity1,.,FunctionNameN/FunctionArityN])
في هذا المكان:
FunctionName − هذا هو اسم الدالة في البرنامج;
FunctionArity − هذا هو عدد المعلمات المرتبطة بالدالة;
-module(helloworld). -author("TutorialPoint"). -version("1.0"). -export([start/0]). start() -> io:fwrite("Hello World").
نتيجة الخروج للكود أعلاه هي -
Hello World
استخدام خاصية الاستيراد لاستيراد الوظائف من مكتبة أخرى لاستخدامها محليًا
-import(modulename, [functionname/parameter]).
في هذا المكان:
Modulename − هذا هو اسم المكتبة التي يجب استيرادها
functionname/parameter − هذه هي الوظائف التي يجب استيرادها في الوحدة
-module(helloworld). -import(io,[fwrite/1]). -export([start/0]). start() -> fwrite("مرحبًا، عالمًا!\n").
في الكود أعلاه، نستخدم كلمة المفتاح import لاستيراد مكتبة “io”، وتحديد وظيفة fwrite. لذا، الآن، ليس من الضروري إضافة اسم المكتبة كل مرة يتم استدعاء وظيفة fwrite.
نتيجة الخروج للكود أعلاه هي -
مرحبًا، عالمًا!