Elm - Tipi di dati

Il Type System rappresenta i diversi tipi di valori supportati dalla lingua. Il Type System verifica la validità dei valori forniti, prima che vengano memorizzati o manipolati dal programma. Ciò garantisce che il codice si comporti come previsto. Il Type System consente inoltre suggerimenti più ricchi sul codice e documentazione automatizzata.

Elm è un linguaggio tipizzato staticamente. Elm ha tipi simili a quelli di altre lingue.

Numero

Il numero tipo di dati rappresenta valori numerici. Il sistema di tipi Elm supporta i seguenti tipi numerici:

Sr. No. genere Esempio
1 numero - Memorizza qualsiasi numero 7 è il tipo di numero
2 Float - Memorizza i valori frazionari 7/2 dà 3.5 come risultato Float
3 Int - Memorizza valori non frazionari 7 // 2 restituisce 3 come risultato Int

Il numero del tipo accetta valori sia frazionari che non frazionari. Apri elm REPL e prova gli esempi riportati di seguito:

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

Il tipo di dati String viene utilizzato per rappresentare una sequenza di caratteri. Il tipo di dati Char viene utilizzato per rappresentare un singolo carattere. I valori stringa sono definiti tra virgolette doppie "e i valori Char sono racchiusi tra virgolette singole '.

Sr. No. genere Esempio
1 Stringa: memorizza una sequenza di caratteri "TutorialsPoint"
2 Char - Memorizza valori frazionari 'T'

Apri elm REPL e prova gli esempi riportati di seguito:

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

Il tipo di dati Bool in Elm supporta solo due valori: True e False. La parola chiave Bool viene utilizzata per rappresentare un valore booleano.

Sr. No. genere Esempio
1 Bool: memorizza i valori True o False 1 == 1 restituisce True

Apri elm REPL e prova gli esempi riportati di seguito:

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

Tipi personalizzati

Elm supporta la creazione di tipi definiti dall'utente. Ad esempio, considera un'applicazione di pagamento. L'applicazione deve memorizzare diverse modalità di pagamento: carta di credito, carta di debito e net banking. Ciò può essere ottenuto definendo un tipo personalizzato e limitandone il valore alle tre modalità di pagamento accettabili.

L'esempio seguente mostra come creare un tipo personalizzato.

> 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

Nell'esempio sopra, abbiamo creato un tipo personalizzato PaymentMode. Le variabili payment1 e payment2 vengono assegnate ai valori PaymentMode. Se il valore assegnato alla variabile non corrisponde a nessuno dei valori definiti dal tipo PaymentMode, l'applicazione genererà un errore di sintassi.

Tipi di dati strutturati

I tipi di dati strutturati possono essere utilizzati per memorizzare più valori in un formato strutturato. Elm supporta i seguenti tipi di dati strutturati:

  • Tuple
  • List
  • Record
  • Record

Questi saranno discussi in dettaglio nei prossimi capitoli.