Elixir - Tipos de datos
Para utilizar cualquier idioma, debe comprender los tipos de datos básicos que admite el idioma. En este capítulo, discutiremos 7 tipos de datos básicos soportados por el lenguaje elixir: enteros, flotantes, booleanos, átomos, cadenas, listas y tuplas.
Tipos numéricos
Elixir, como cualquier otro lenguaje de programación, admite tanto enteros como flotantes. Si abre su capa de elixir e ingresa cualquier número entero o flotante como entrada, devolverá su valor. Por ejemplo,
42
Cuando se ejecuta el programa anterior, produce el siguiente resultado:
42
También puede definir números en bases octales, hexadecimales y binarias.
Octal
Para definir un número en base octal, antepóngalo con '0o'. Por ejemplo, 0o52 en octal equivale a 42 en decimal.
Hexadecimal
Para definir un número en base decimal, antepóngalo con '0x'. Por ejemplo, 0xF1 en hexadecimal equivale a 241 en decimal.
Binario
Para definir un número en base binaria, antepóngalo con '0b'. Por ejemplo, 0b1101 en binario es equivalente a 13 en decimal.
Elixir admite doble precisión de 64 bits para números de punto flotante. Y también se pueden definir utilizando un estilo de exponenciación. Por ejemplo, 10145230000 se puede escribir como 1.014523e10
Átomos
Los átomos son constantes cuyo nombre es su valor. Se pueden crear utilizando el símbolo de color (:). Por ejemplo,
:hello
Booleanos
Soportes de elixir true y falsecomo booleanos. De hecho, ambos valores están unidos a los átomos: verdadero y: falso respectivamente.
Instrumentos de cuerda
Las cadenas de Elixir se insertan entre comillas dobles y están codificadas en UTF-8. Pueden abarcar varias líneas y contener interpolaciones. Para definir una cadena, simplemente introdúzcala entre comillas dobles:
"Hello world"
Para definir cadenas de varias líneas, usamos una sintaxis similar a Python con comillas dobles triples:
"""
Hello
World!
"""
Aprenderemos sobre cadenas, binarios y listas de caracteres (similares a cadenas) en profundidad en el capítulo de cadenas.
Binarios
Los binarios son secuencias de bytes encerrados en << >> separados por una coma. Por ejemplo,
<< 65, 68, 75>>
Los binarios se utilizan principalmente para manejar datos relacionados con bits y bytes, si tiene alguno. Pueden, por defecto, almacenar de 0 a 255 en cada valor. Este límite de tamaño se puede aumentar usando la función de tamaño que dice cuántos bits se deben tomar para almacenar ese valor. Por ejemplo,
<<65, 255, 289::size(15)>>
Liza
Elixir usa corchetes para especificar una lista de valores. Los valores pueden ser de cualquier tipo. Por ejemplo,
[1, "Hello", :an_atom, true]
Las listas vienen con funciones incorporadas para el principio y el final de la lista denominada hd y tl que devuelven el principio y el final de la lista respectivamente. A veces, cuando crea una lista, devolverá una lista de caracteres. Esto se debe a que cuando elixir ve una lista de caracteres ASCII imprimibles, la imprime como una lista de caracteres. Tenga en cuenta que las cadenas y las listas de caracteres no son iguales. Analizaremos las listas con más detalle en capítulos posteriores.
Tuplas
Elixir usa llaves para definir tuplas. Como las listas, las tuplas pueden contener cualquier valor.
{ 1, "Hello", :an_atom, true
Aquí surge una pregunta: ¿por qué proporcionar tanto lists y tuplescuando ambos trabajan de la misma manera? Bueno, tienen diferentes implementaciones.
Las listas se almacenan en realidad como listas enlazadas, por lo que las inserciones y eliminaciones son muy rápidas en las listas.
Las tuplas, por otro lado, se almacenan en un bloque de memoria contiguo, lo que agiliza el acceso a ellas, pero agrega un costo adicional en inserciones y eliminaciones.