Erlang - Tipos de datos
En cualquier lenguaje de programación, necesita usar varias variables para almacenar varios tipos de información. Las variables no son más que ubicaciones de memoria reservadas para almacenar valores. Esto significa que cuando crea una variable, reserva algo de espacio en la memoria para almacenar el valor asociado con esa variable.
Es posible que desee almacenar información de varios tipos de datos como cadena, carácter, carácter ancho, entero, punto flotante, booleano, etc. Según el tipo de datos de una variable, el sistema operativo asigna memoria y decide qué se puede almacenar en el reservado. memoria.
Tipos de datos integrados
Erlang ofrece una amplia variedad de tipos de datos integrados. A continuación se muestra una lista de tipos de datos que se definen en Erlang:
Number - En Erlang, hay 2 tipos de literales numéricos que son enteros y flotantes.
Atom- Un átomo es un literal, una constante con nombre. Un átomo debe incluirse entre comillas simples (') si no comienza con una letra minúscula o si contiene otros caracteres además de caracteres alfanuméricos, guión bajo (_) o @.
Boolean - Los tipos de datos booleanos en Erlang son los dos átomos reservados: verdadero y falso.
Bit String - Se utiliza una cadena de bits para almacenar un área de memoria sin escribir.
Tuple- Una tupla es un tipo de datos compuestos con un número fijo de términos. Cada término de la tupla se llama como un elemento. Se dice que el número de elementos es el tamaño de la tupla.
Map- Un mapa es un tipo de datos compuestos con un número variable de asociaciones clave-valor. Cada asociación clave-valor del mapa se denomina par de asociación. Las partes clave y de valor del par se denominan elementos. Se dice que el número de pares de asociaciones es el tamaño del mapa.
List- Una lista es un tipo de datos compuestos con un número variable de términos. Cada término de la lista se denomina elemento. Se dice que el número de elementos es la longitud de la lista.
Note- Se sorprenderá al ver que no puede ver el tipo String en ninguna parte de la lista anterior. Eso es porque no hay un tipo de datos de cadena definido exclusivamente en Erlang. Pero veremos cómo podemos trabajar con cadenas en un capítulo posterior.
A continuación se muestran ejemplos de cómo se puede utilizar cada tipo de datos. Nuevamente, cada tipo de datos se discutirá en detalle en los capítulos siguientes. Esto es solo para que se familiarice con una breve descripción de los tipos de datos mencionados anteriormente.
Número
En el siguiente programa se muestra un ejemplo de cómo se puede utilizar el tipo de datos numéricos. Este programa muestra la suma de 2 enteros.
Example
-module(helloworld).
-export([start/0]).
start() ->
io:fwrite("~w",[1+1]).
La salida del programa anterior será:
Output
2
Átomo
Los átomos deben comenzar con una letra minúscula y pueden contener caracteres en minúsculas y mayúsculas, dígitos, subrayado (_) y el signo "arroba" (@). También podemos encerrar un átomo entre comillas simples.
En el siguiente programa se muestra un ejemplo de cómo se puede utilizar el tipo de datos del átomo. En este programa, estamos creando un átomo que se llama atom1.
Example
-module(helloworld).
-export([start/0]).
start() ->
io:fwrite(atom1).
La salida del programa anterior será:
Output
atom1
Booleano
En el siguiente programa se muestra un ejemplo de cómo se puede utilizar el tipo de datos booleanos. Este ejemplo hace una comparación entre 2 enteros e imprime el booleano resultante en la consola.
Example
-module(helloworld).
-export([start/0]).
start() ->
io:fwrite(2 =< 3).
La salida del programa anterior será:
Output
true
Cadena de bits
En el siguiente programa se muestra un ejemplo de cómo se puede utilizar el tipo de datos Bit String. Este programa define una cadena de bits que consta de 2 bits. losbinary_to_list es una función incorporada definida en Erlang que se puede utilizar para convertir una cadena de bits en una lista.
Example
-module(helloworld).
-export([start/0]).
start() ->
Bin1 = <<10,20>>,
X = binary_to_list(Bin1),
io:fwrite("~w",[X]).
La salida del programa anterior será:
Output
[10,20]
Tupla
En el siguiente programa se muestra un ejemplo de cómo se puede utilizar el tipo de datos Tuple.
Aquí estamos definiendo un Tuple Pque tiene 3 términos. lostuple_size es una función incorporada definida en Erlang, que se puede utilizar para determinar el tamaño de la tupla.
Example
-module(helloworld).
-export([start/0]).
start() ->
P = {john,24,{june,25}} ,
io:fwrite("~w",[tuple_size(P)]).
La salida del programa anterior será:
Output
3
Mapa
En el siguiente programa se muestra un ejemplo de cómo se puede utilizar el tipo de datos Mapa.
Aquí estamos definiendo un Map M1que tiene 2 mapeos. losmap_size es una función incorporada definida en Erlang, que se puede utilizar para determinar el tamaño del mapa.
Example
-module(helloworld).
-export([start/0]).
start() ->
M1 = #{name=>john,age=>25},
io:fwrite("~w",[map_size(M1)]).
La salida del programa anterior será:
Output
2
Lista
En el siguiente programa se muestra un ejemplo de cómo se puede utilizar el tipo de datos Lista.
Aquí estamos definiendo un List Lque tiene 3 elementos. La longitud es una función incorporada definida en Erlang, que se puede utilizar para determinar el tamaño de la lista.
Example
-module(helloworld).
-export([start/0]).
start() ->
L = [10,20,30] ,
io:fwrite("~w",[length(L)]).
La salida del programa anterior será:
Output
3