English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

السجلات في Erlang (Record)

يحتوي Erlang على ميزة إضافية لإنشاء السجلات. تتكون السجلات من الحقول. على سبيل المثال، يمكنك تعريف سجل شخص يحتوي على حقلين، أحدهما هو id والآخر هو حقل الاسم. ثم في Erlang، يمكنك إنشاء أنواع مختلفة من السجلات لتحديد أشخاص يحتويون على أسماء و IDs مختلفة.

دعونا نستعرض كيفية التعامل مع السجلات.

إنشاء سجل

لإنشاء سجل باستخدام معرف السجل، حيث يتم تحديد الحقول التي تشكل السجل. يُقدم أدناه النحو العام وال مثال.

النحو

record(recordname , {Field1,Field2 ..Fieldn})

المتغيرات

  • recordname −هذا هو اسم السجل.

  • Field1,Field2 ..Fieldn −هذه هي قائمة الحقول التي تشكل السجل.

القيمة المُرجع

لا يوجد

على سبيل المثال

-module(helloworld). 
-export([start/0]). 
-record(person, {name = "", id}). 
start() -> 
   P = #person{name="John",id = 1}.

يعرض المثال أعلاه تعريف سجل يحتوي على حقلين، أحدهما هو id والآخر هو الاسم. بالإضافة إلى ذلك، يتم بناء السجل كما يلي -

النحو

#recordname {fieldName1 = value1, fieldName2 = value2 .. fieldNameN = valueN}

عند تعريف سجل جديد، يمكنك تخصيص القيم لكل حقل فيه.

وصول قيمة السجل

للوصول إلى حقل وسعر سجل معين، يجب استخدام النحو التالي.

النحو

#recordname.Fieldname

المتغيرات

  • recordname −هذه هي اسم السجل الذي سيُ تخصيص له.

  • Fieldname −هذه هي اسم الحقل الذي يجب الوصول إليه.

القيمة المُرجع

القيمة التي تُ 할للها لهذا الحقل.

على سبيل المثال

-module(helloworld). 
-export([start/0]). 
-record(person, {name = "", id}). 
start() -> 
   P = #person{name = "John",id = 1}, 
   io:fwrite("~p~n",[P#person.id]), 
   io:fwrite("~p~n",[P#person.name]).

الخروج

الخروج من البرنامج هو كالتالي.

1
"John"

تحديث قيمة السجل

لتحديث قيمة السجل، قم بتغيير القيمة إلى حقل معين، ثم تخصيص السجل إلى اسم متغير جديد. يُقدم أدناه النحو العام وال مثال.

النحو

#recordname.Fieldname = newvalue

المتغيرات

  • recordname −هذه هي اسم السجل الذي سيُ تخصيص له.

  • Fieldname −هذه هي اسم الحقل الذي يجب الوصول إليه.

  • newvalue −هذه هي القيمة الجديدة التي يجب تخصيصها لهذا الحقل.

القيمة المُرجع

يوجد سجل جديد يحتوي على قيم جديدة تُ 할للها للحقول.

على سبيل المثال

-module(helloworld). 
-export([start/0]). 
-record(person, {name = "", id}). 
start() -> 
   P = #person{name = "John",id = 1}, 
   P1 = P#person{name = "Dan"}, 
   
   io:fwrite("~p~n",[P1#person.id]), 
   io:fwrite("~p~n",[P1#person.name]).

الخروج

الخروج من البرنامج هو كالتالي-

1
"Dan"

السجلات المدمجة

يحتوي Erlang أيضًا على وظيفة السجلات المدمجة. يوضح المثال التالي كيفية إنشاء هذه السجلات المدمجة.

على سبيل المثال

-module(helloworld). 
-export([start/0]). 
-record(person, {name = "", address}). 
-record(employee, {person, id}). 
start() -> 
   P = #employee{person = #person{name = "John", address = "A"}, id = 1}, 
   io:fwrite("~p~n",[P#employee.id]).

في المثال السابق، يجب الانتباه إلى النقاط التالية-

  • نبدأ بإنشاء سجل شخص، حيث تكون قيم الحقول name وaddress.

  • ثم نحدد سجل الموظف، حيث هو حقل، بالإضافة إلى حقل يسمى id.

الخروج

الخروج من البرنامج هو كالتالي.

1