На любом языке программирования вам нужно использовать несколько переменных для хранения различных типов информации. Переменные — это не что иное, как зарезервированные области памяти для хранения значений. Это означает, что при создании переменной вы резервируете некоторое пространство в памяти для хранения значения, связанного с этой переменной.
Вам может потребоваться хранить информацию различных типов данных, таких как строка, символ, широкий символ, целое число, число с плавающей запятой, логическое значение и т. Д. На основе типа данных переменной операционная система выделяет память и решает, что можно сохранить в зарезервированном объем памяти.
Встроенные типы данных
Erlang предлагает широкий спектр встроенных типов данных. Ниже приведен список типов данных, которые определены в Erlang —
-
Число — в Erlang есть 2 типа числовых литералов, которые являются целыми числами и числами с плавающей точкой.
-
Атом — Атом — это литерал, константа с именем. Атом должен быть заключен в одинарные кавычки (‘), если он не начинается со строчной буквы или содержит другие символы, кроме буквенно-цифровых символов, подчеркивания (_) или @.
-
Boolean — Булевы типы данных в Erlang — это два зарезервированных атома: true и false.
-
Битовая строка — битовая строка используется для хранения области нетипизированной памяти.
-
Кортеж — кортеж — это составной тип данных с фиксированным числом терминов. Каждый термин в кортеже называется элементом. Количество элементов называется размером кортежа.
-
Карта — карта — это составной тип данных с переменным числом ассоциаций ключ-значение. Каждая ассоциация ключ-значение на карте называется парой ассоциации. Ключевые и значимые части пары называются элементами. Количество пар ассоциаций называется размером карты.
-
Список — список — это составной тип данных с переменным количеством терминов. Каждый термин в списке называется элементом. Количество элементов называется длиной списка.
Число — в Erlang есть 2 типа числовых литералов, которые являются целыми числами и числами с плавающей точкой.
Атом — Атом — это литерал, константа с именем. Атом должен быть заключен в одинарные кавычки (‘), если он не начинается со строчной буквы или содержит другие символы, кроме буквенно-цифровых символов, подчеркивания (_) или @.
Boolean — Булевы типы данных в Erlang — это два зарезервированных атома: true и false.
Битовая строка — битовая строка используется для хранения области нетипизированной памяти.
Кортеж — кортеж — это составной тип данных с фиксированным числом терминов. Каждый термин в кортеже называется элементом. Количество элементов называется размером кортежа.
Карта — карта — это составной тип данных с переменным числом ассоциаций ключ-значение. Каждая ассоциация ключ-значение на карте называется парой ассоциации. Ключевые и значимые части пары называются элементами. Количество пар ассоциаций называется размером карты.
Список — список — это составной тип данных с переменным количеством терминов. Каждый термин в списке называется элементом. Количество элементов называется длиной списка.
Примечание. Вы будете удивлены тем, что нигде в списке выше не видите тип String. Это потому, что нет строкового типа данных, определенного исключительно в Erlang. Но мы увидим, как мы можем работать со строками в следующей главе.
Ниже приведены примеры использования каждого типа данных. Опять же, каждый тип данных будет подробно обсуждаться в следующих главах. Это просто для ознакомления с кратким описанием вышеупомянутых типов данных.
Число
Пример использования числового типа данных показан в следующей программе. Эта программа показывает сложение 2 целых чисел.
пример
-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).
Выход вышеупомянутой программы будет —
Выход
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 показан в следующей программе.
Здесь мы определяем кортеж P, который имеет 3 члена. Tuple_size — это встроенная функция, определенная в Erlang, которая может использоваться для определения размера кортежа.
пример
-module(helloworld). -export([start/0]). start() -> P = {john,24,{june,25}} , io:fwrite("~w",[tuple_size(P)]).
Выход вышеупомянутой программы будет —
Выход
3
карта
Пример того, как можно использовать тип данных Map, показан в следующей программе.
Здесь мы определяем карту M1, которая имеет 2 отображения. Map_size — это встроенная функция, определенная в Erlang, которая может использоваться для определения размера карты.
пример
-module(helloworld). -export([start/0]). start() -> M1 = #{name=>john,age=>25}, io:fwrite("~w",[map_size(M1)]).
Выход вышеупомянутой программы будет —
Выход
2
Список
Пример того, как можно использовать тип данных List, показан в следующей программе.
Здесь мы определяем список L, который имеет 3 элемента. Длина — это встроенная функция, определенная в Erlang, которая может использоваться для определения размера списка.
пример
-module(helloworld). -export([start/0]). start() -> L = [10,20,30] , io:fwrite("~w",[length(L)]).
Выход вышеупомянутой программы будет —
Выход