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

Типы данных Erlang

В любом языке программирования необходимо использовать множество переменных для хранения различных типов информации. Переменные — это просто резервированные места в памяти для хранения значений. Это означает, что при создании переменной вы резервируете определенное количество места в памяти для хранения значения, связанного с этой переменной.

Вы можете хранить информацию различных типов данных, такие как строки, символы, широкие символы, целые числа, дробные числа, логические значения и т.д. Операционная системаassigns память переменным в зависимости от их типа данных и определяет, что можно хранить в зарезервированной памяти.

Встроенные типы данных

Erlang предоставляет множество встроенных типов данных. Вот список типов данных, определяемых в Erlang:

  • Number(Числа)− В Erlang есть два типа числовых литералов: целые числа и дробные числа.

  • AtomАтомы)− Атомы — это символы, это именованные константы. Если атом не начинается с малой буквы или содержит символьно-цифровые символы, подчеркивание (_) или символ @, то его заключают в кавычки (').

  • BooleanБулево) − В Erlang тип данных логического значения представлен двумя резервируемыми атомами: true и false。

  • Битовая строка (Битовая строка)−Используйте битовые строки для хранения неопределенных областей памяти.

  • ТуплТупл)−Тупл - это составной тип данных с фиксированным количеством элементов. Каждый элемент в тупле называется элементом. Количество элементов называется размером тупла.

  • Мап (карта)−Мап (карта) - это составной тип данных с переменным количеством ключ-значение ассоциаций. Каждая ключ-значение ассоциация в мапе называется парой. Часть ключа и значения в паре называется элементом. Количество пар называется размером мапы.

  • Список(Список)−Список - это составной тип данных с переменным количеством элементов. Каждый элемент в списке называется элементом. Количество элементов называется размером списка.

Внимание−Вы удивитесь, что в этом списке нет типа данных String. Это потому, что в Erlang нет专门 определенного типа данных строки. Но в следующей главе мы увидим, как использовать строки.

Ниже приведены примеры использования каждого типа данных. Таким образом, каждый тип данных будет подробно рассмотрен в следующих разделах. Это всего лишь краткое описание, чтобы познакомить вас с перечисленными типами данных.

Числа

Ниже приведен пример программы, показывающей использование типа данных Number. Эта программа показывает сложение двух целых чисел.

-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

Логический тип

Ниже приведен пример программы, показывающей использование типа данных Boolean. В этом примере сравниваются два целых числа, и результат логического значения выводится на экран.


-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 с тремя элементами. tuple_size - это втроенный функционал Erlang, который можно использовать для определения размера тупла.

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

Вывод программы будет:

3

Мап

Следующая программа显示了 как использовать пример с типом данных Map.

Здесь мы определили Map M1 с двумя мапами.  map_size — это вbuilt-функция Erlang, которая может определить размер карты.

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

Вывод программы будет::

2

Список

Следующая программа显示了如何 использовать пример с типом данных List.

Здесь мы определилиСписок LОн содержит 3 проекта. Внутренняя функция length, определенная в Erlang, может использоваться для определения размера списка.

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

Вывод программы будет::

3