Elm - Tipos de datos
El sistema de tipos representa los diferentes tipos de valores admitidos por el idioma. El Type System verifica la validez de los valores proporcionados, antes de que sean almacenados o manipulados por el programa. Esto asegura que el código se comporte como se esperaba. Además, el Type System permite sugerencias de código más completas y documentación automatizada.
Elm es un lenguaje escrito estáticamente. Elm tiene tipos similares a los de otros idiomas.
Número
El número de tipo de datos representa valores numéricos. El sistema de tipo Elm admite los siguientes tipos numéricos:
No Señor. | Tipo | Ejemplo |
---|---|---|
1 | número: almacena cualquier número | 7 es el tipo de número |
2 | Flotante: almacena valores fraccionarios | 7/2 da un resultado de 3,5 como flotante |
3 | Int: almacena valores no fraccionarios | 7 // 2 da 3 resultado como Int |
El número de tipo admite valores fraccionarios y no fraccionarios. Abra el elm REPL y pruebe los ejemplos que se dan a continuación:
C:\Users\admin>elm repl
---- elm-repl 0.18.0
---------------------------------------------
--------------
:help for help, :exit to exit, more at <https://github.com/elm-lang/elm-repl>
------------------------------------------
--------------------------------------
> 7
7 : number
> 7/2
3.5 : Float
> 7//2
3 : Int
>
Cadena y Char
El tipo de datos String se utiliza para representar una secuencia de caracteres. El tipo de datos Char se utiliza para representar un solo carácter. Los valores de cadena se definen entre comillas dobles "y los valores de Char se incluyen entre comillas simples".
No Señor. | Tipo | Ejemplo |
---|---|---|
1 | Cadena: almacena una secuencia de caracteres | "TutorialsPoint" |
2 | Char: almacena valores fraccionarios | 'T' |
Abra el elm REPL y pruebe los ejemplos que se dan a continuación:
C:\Users\admin>elm repl
---- elm-repl 0.18.0 ---------------------------------------
--------------------
:help for help, :exit to exit, more at <https://github.com/elm-lang/elm-repl>
--------------------------------------
------------------------------------------
> "TutorialsPoint"
"TutorialsPoint" : String
> 'T'
'T' : Char
Bool
El tipo de datos Bool en Elm solo admite dos valores: Verdadero y Falso. La palabra clave Bool se utiliza para representar un valor booleano.
No Señor. | Tipo | Ejemplo |
---|---|---|
1 | Bool: almacena valores verdaderos o falsos | 1 == 1 devuelve verdadero |
Abra el elm REPL y pruebe los ejemplos que se dan a continuación:
C:\Users\dell\elm>elm repl
---- elm-repl 0.18.0 -----------------------------------
------------------------
:help for help, :exit to exit, more at <https://github.com/elm-lang/elm-repl>
----------------------------------------
----------------------------------------
> True
True : Bool
> False
False : Bool
> 1==1
True : Bool
> 1==2
False : Bool
> 1 /= 2 -- not equal
True : Bool
> not True
False : Bool
> not False
True : Bool
Tipos personalizados
Elm admite la creación de tipos definidos por el usuario. Por ejemplo, considere una aplicación de pago. La aplicación necesita almacenar diferentes modos de pago: tarjeta de crédito, tarjeta de débito y banca neta. Esto se puede lograr definiendo un tipo personalizado y restringiendo su valor a los tres modos de pago aceptables.
El siguiente ejemplo muestra cómo hacer un tipo personalizado.
> type PaymentMode = CreditCard|NetBanking|DebitCard
> payment1 = CreditCard
CreditCard : Repl.PaymentMode
> payment2 = DebitCard
DebitCard : Repl.PaymentMode
> payment3 = UPI
-- NAMING ERROR ---------------------------------------------- repl-temp-000.elm
Cannot find variable `UPI`
7| payment3 = UPI
En el ejemplo anterior, creamos un tipo personalizado PaymentMode. Las variables pago1 y pago2 se asignan a los valores de PaymentMode. Si el valor asignado a la variable no coincide con ninguno de los valores definidos por el tipo PaymentMode, la aplicación arrojará un error de sintaxis.
Tipos de datos estructurados
Los tipos de datos estructurados se pueden utilizar para almacenar varios valores en un formato estructurado. Elm admite los siguientes tipos de datos estructurados:
- Tuple
- List
- Record
- Record
Estos se discutirán en detalle en los próximos capítulos.