Elm - Tipos de Dados
O Type System representa os diferentes tipos de valores suportados pelo idioma. O Type System verifica a validade dos valores fornecidos, antes de serem armazenados ou manipulados pelo programa. Isso garante que o código se comporte conforme o esperado. O Type System permite ainda mais dicas de código e documentação automatizada.
Elm é uma linguagem de tipagem estática. Elm tem tipos semelhantes aos de outras línguas.
Número
O tipo de dados de número representa valores numéricos. O sistema de tipo Elm suporta os seguintes tipos numéricos -
Sr. Não. | Tipo | Exemplo |
---|---|---|
1 | número - armazena qualquer número | 7 é o tipo de número |
2 | Float - armazena valores fracionários | 7/2 dá 3,5 resultados como flutuante |
3 | Int - Armazena valores não fracionários | 7 // 2 dá 3 resultados como Int |
O número do tipo acomoda valores fracionários e não fracionários. Abra o elm REPL e tente os exemplos dados abaixo -
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
>
String e Char
O tipo de dados String é usado para representar uma sequência de caracteres. O tipo de dados Char é usado para representar um único caractere. Cordas valores são definidos dentro de aspas duplas "e Char valores são colocados dentro de uma única citação'.
Sr. Não. | Tipo | Exemplo |
---|---|---|
1 | String - Armazena uma sequência de caracteres | "TutorialsPoint" |
2 | Char - armazena valores fracionários | 'T' |
Abra o elm REPL e tente os exemplos dados abaixo -
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
O tipo de dados Bool no Elm suporta apenas dois valores - True e False. A palavra-chave Bool é usada para representar um valor booleano.
Sr. Não. | Tipo | Exemplo |
---|---|---|
1 | Bool - armazena valores True ou False | 1 == 1 retorna Verdadeiro |
Abra o elm REPL e tente os exemplos dados abaixo -
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 suporta a criação de tipos definidos pelo usuário. Por exemplo, considere um aplicativo de pagamento. O aplicativo precisa armazenar diferentes modos de pagamento - cartão de crédito, cartão de débito e net banking. Isso pode ser alcançado definindo um tipo personalizado e restringindo seu valor aos três modos de pagamento aceitáveis.
O exemplo a seguir mostra como fazer um 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
No exemplo acima, criamos um tipo personalizado PaymentMode. As variáveis payment1 e payment2 são atribuídas aos valores PaymentMode. Se o valor atribuído à variável não corresponder a nenhum dos valores definidos pelo tipo PaymentMode, o aplicativo gerará um erro de sintaxe.
Tipos de dados estruturados
Os tipos de dados estruturados podem ser usados para armazenar vários valores em um formato estruturado. Elm suporta os seguintes tipos de dados estruturados -
- Tuple
- List
- Record
- Record
Isso será discutido em detalhes nos próximos capítulos.