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