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

Erlang 数据类型

في أي لغة برمجة، تحتاج إلى استخدام متغيرات متعددة لتخزين أنواع مختلفة من المعلومات. المتغير هو مجرد مكان محفوظ في الذاكرة يستخدم لتخزين القيم. هذا يعني أن عند إنشاء متغير، ستُحجز مساحة في الذاكرة لتخزين القيمة المرتبطة بالمتغير.

قد ترغب في تخزين معلومات من أنواع بيانات متعددة، مثل الأنواع النصية، الحروف، الحروف العريضة، الأعداد الصحيحة، الأعداد العشرية، البوليانية، إلخ. تُخصص النظام التشغيل ذاكرة التخزين بناءً على نوع البيانات للمتغير وتقرر ما يمكن تخزينه في ذاكرة التخزين المحفوظة.

أنواع البيانات المدمجة

يقدم Erlang أنواعًا متعددة من البيانات المدمجة. إليك قائمة بأنواع البيانات المحددة في Erlang -

  • Number)(رقم) - في Erlang، هناك نوعان من الأرقام المكتوبة، وهي الأعداد الصحيحة والأعداد العشرية.

  • Atomالذات()) - الأتمة هي حروف، هي كيانات ثابتة ذات أسماء. إذا لم يبدأ الأتمة بحرف صغير أو يحتوي على أحرف أرقامية، أو خط أسفل (_) أو @ فإنها تُحاط بـ ' (' وـ ')'.

  • Booleanبولياني()) - نوع البيانات الحلقي في Erlang هو نوعان من الأتمتة المحفوظة: true وfalse.

  • سلسلة من الأبنية −استخدم سلسلة الأبنية لتخزين مناطق ذاكرة غير مناسبة للنوع.

  • الجملةالجملة−الجملة هي نوع بيانات مركب يحتوي على عدد ثابت من العناصر. يُسمى كل عنصر في الجملة بعنصر. يُسمى عدد العناصر في الجملة حجم الجملة.

  • خريطة (الخريطة)−الخريطة هي نوع بيانات مركب يحتوي على عدد متغير من الصلوات بين المفاتيح والقيم. يُسمى كل صلة بين المفتاح والقيمة بـزوج. يُسمى جزء المفتاح والقيمة في الزوج بـعنصر. يُسمى عدد الزوجات في الخريطة حجم الخريطة.

  • القائمة-(القائمة)−القائمة هي نوع بيانات مركب يحتوي على عدد متغير من العناصر. يُسمى كل عنصر في القائمة بـعنصر. يُسمى عدد العناصر في القائمة بـطول القائمة.

ملاحظة−قد تتفاجأ من عدم رؤية نوع البيانات String في القائمة أعلاه. هذا لأنه لم يتم تعريف نوع البيانات السلسلة بشكل خاص في Erlang. ولكن سنرى كيفية استخدام السلسلة في الفصل القادم.

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

الرقم

يظهر البرنامج أدناه كيفية استخدام مثال على نوع البيانات الرقمية. البرنامج يظهر جمع عددين.

-module(helloworld).
-export([start/0]).
start() ->
   io:fwrite("~w",[1+1]).

上面程序的输出将是

2

الذات

الذات يجب أن تبدأ بأحرف صغيرة ويمكن أن تحتوي على أحرف صغيرة وكبيرة وأرقام وأشرطة(_)وعلامة "at"(@). يمكننا أيضًا وضع الذات بين الأسهم.

يظهر البرنامج أدناه كيفية استخدام مثال على نوع البيانات atom. في هذا البرنامج، نحن نخلق الذات atom1.

-module(helloworld).
-export([start/0]).
start() ->
   io:fwrite(atom1).

上面程序的输出将是

atom1

نوع البيانات الحولي

يظهر البرنامج أدناه كيفية استخدام مثال على نوع البيانات布尔ية. هذا المثال يقارن بين عددين ويقوم بطباعة القيمة الحولية إلى الشاشة.


-module(helloworld).
-export([start/0]).
start() ->
   io:fwrite(2=<3).

上面程序的输出将是-

Output

true

سلسلة من الأبنية

يظهر البرنامج أدناه كيفية استخدام مثال على نوع البيانات Bit String. البرنامج يحدد سلسلة من الأبنية تتكون من 2 بيت.binary_to_listهي دالة مدمجة في Erlang يمكن استخدامها لتحويل سلسلة من الأبنية إلى قائمة.

-module(helloworld).
-export([start/0]).
start() ->
   Bin1 = <<10,20>>,,
   X = binary_to_list(Bin1),
   io:fwrite("~w",[X]).

سيكون خروج البرنامج أعلاه كالتالي:

[10,20]

الجملة

يظهر البرنامج أدناه كيفية استخدام مثال على نوع البيانات Tuple.

في هذا المكان، نحدد مجموعة تحتوي على 3 عناصر تسمى P. tuple_size هي دالة مدمجة في Erlang يمكن استخدامها لتحديد حجم المجموعة.

-module(helloworld). 
-export([start/0]). 
start() -> 
   P = {john,24,{june,25}}, 
   io:fwrite("~w",[tuple_size(P)]).

上面程序的输出将是-

3

映射

以下程序显示了如何使用Map数据类型的示例。

在这里,我们定义了具有2个映射的Map M1。  map_size是用Erlang定义的内置函数,可用于确定地图的大小。

-module(helloworld). 
-export([start/0]). 
start() -> 
   M1 = #{name=>john,age=>25}, 
   io:fwrite("~w",[map_size(M1)]).

上面程序的输出将是

2

列表

以下程序显示了如何使用List数据类型的示例。

在这里,我们定义了一个List L,它包含3个项目。用Erlang定义的内置 length函数,可用于确定列表的大小。

-module(helloworld). 
-export([start/0]). 
start() -> 
   L = [10,20,30] , 
   io:fwrite("~w",[length(L)]).

上面程序的输出将是

3