Erlang - Tipos de dados

Em qualquer linguagem de programação, você precisa usar várias variáveis ​​para armazenar vários tipos de informações. As variáveis ​​nada mais são do que locais de memória reservados para armazenar valores. Isso significa que, ao criar uma variável, você reserva algum espaço na memória para armazenar o valor associado a essa variável.

Você pode gostar de armazenar informações de vários tipos de dados como string, caractere, caractere largo, inteiro, ponto flutuante, booleano, etc. Com base no tipo de dados de uma variável, o sistema operacional aloca memória e decide o que pode ser armazenado no reservado memória.

Tipos de dados integrados

Erlang oferece uma ampla variedade de tipos de dados integrados. A seguir está uma lista de tipos de dados que são definidos em Erlang -

  • Number - Em Erlang, existem 2 tipos de literais numéricos que são inteiros e flutuantes.

  • Atom- Um átomo é um literal, uma constante com nome. Um átomo deve ser colocado entre aspas simples (') se não começar com uma letra minúscula ou se contiver outros caracteres além de caracteres alfanuméricos, sublinhado (_) ou @.

  • Boolean - Os tipos de dados booleanos em Erlang são os dois átomos reservados: verdadeiro e falso.

  • Bit String - Uma string de bits é usada para armazenar uma área de memória não digitada.

  • Tuple- Uma tupla é um tipo de dados composto com um número fixo de termos. Cada termo na tupla é chamado como um elemento. O número de elementos é o tamanho da tupla.

  • Map- Um mapa é um tipo de dados composto com um número variável de associações de valores-chave. Cada associação de valor-chave no mapa é chamada de par de associação. As partes chave e valor do par são chamadas de elementos. O número de pares de associação é considerado o tamanho do mapa.

  • List- Uma lista é um tipo de dados composto com um número variável de termos. Cada termo da lista é chamado de elemento. Diz-se que o número de elementos é o comprimento da lista.

Note- Você ficará surpreso ao ver que não consegue ver o tipo String em nenhum lugar da lista acima. Isso porque não há tipo de dados de string definido exclusivamente em Erlang. Mas veremos como podemos trabalhar com strings em um capítulo subsequente.

A seguir estão os exemplos de como cada tipo de dados pode ser usado. Novamente, cada tipo de dados será discutido em detalhes nos capítulos seguintes. Isso é apenas para que você se familiarize com uma breve descrição dos tipos de dados mencionados acima.

Número

Um exemplo de como o tipo de dados numéricos pode ser usado é mostrado no programa a seguir. Este programa mostra a adição de 2 inteiros.

Example

-module(helloworld).
-export([start/0]).

start() ->
   io:fwrite("~w",[1+1]).

O resultado do programa acima será -

Output

2

Átomo

Os átomos devem começar com uma letra minúscula e podem conter caracteres minúsculos e maiúsculos, dígitos, sublinhado (_) e o sinal “arroba” (@). Também podemos colocar um átomo entre aspas simples.

Um exemplo de como o tipo de dados atom pode ser usado é mostrado no programa a seguir. Neste programa, estamos criando um átomo que é chamado atom1.

Example

-module(helloworld).
-export([start/0]).

start() ->
   io:fwrite(atom1).

O resultado do programa acima será -

Output

atom1

boleano

Um exemplo de como o tipo de dados booleano pode ser usado é mostrado no programa a seguir. Este exemplo faz uma comparação entre 2 inteiros e imprime o booleano resultante no console.

Example

-module(helloworld).
-export([start/0]).

start() ->
   io:fwrite(2 =< 3).

O resultado do programa acima será -

Output

true

String de bits

Um exemplo de como o tipo de dados Bit String pode ser usado é mostrado no programa a seguir. Este programa define uma seqüência de bits que consiste em 2 bits. obinary_to_list é uma função embutida definida em Erlang que pode ser usada para converter uma string de bits em uma lista.

Example

-module(helloworld).
-export([start/0]).

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

O resultado do programa acima será -

Output

[10,20]

Tupla

Um exemplo de como o tipo de dados Tupla pode ser usado é mostrado no programa a seguir.

Aqui estamos definindo um Tuple Pque tem 3 termos. otuple_size é uma função embutida definida em Erlang, que pode ser usada para determinar o tamanho da tupla.

Example

-module(helloworld). 
-export([start/0]). 

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

O resultado do programa acima será -

Output

3

Mapa

Um exemplo de como o tipo de dados Map pode ser usado é mostrado no programa a seguir.

Aqui estamos definindo um Map M1que possui 2 mapeamentos. omap_size é uma função embutida definida em Erlang, que pode ser usada para determinar o tamanho do mapa.

Example

-module(helloworld). 
-export([start/0]). 

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

O resultado do programa acima será -

Output

2

Lista

Um exemplo de como o tipo de dados List pode ser usado é mostrado no programa a seguir.

Aqui estamos definindo um List Lque tem 3 itens. O comprimento é uma função embutida definida em Erlang, que pode ser usada para determinar o tamanho da lista.

Example

-module(helloworld). 
-export([start/0]). 

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

O resultado do programa acima será -

Output

3