Elm - Types de données

Le système de types représente les différents types de valeurs pris en charge par la langue. Le système de types vérifie la validité des valeurs fournies avant qu'elles ne soient stockées ou manipulées par le programme. Cela garantit que le code se comporte comme prévu. Le système de types permet en outre des indications de code plus riches et une documentation automatisée.

Elm est un langage typé statiquement. Elm a des types similaires à ceux d'autres langues.

Nombre

Le nombre type de données représente des valeurs numériques. Le système de type Elm prend en charge les types numériques suivants -

Sr. No. Type Exemple
1 number - Stocke n'importe quel nombre 7 est le type de nombre
2 Float - Stocke les valeurs fractionnaires 7/2 donne 3,5 résultat comme Float
3 Int - Stocke les valeurs non fractionnaires 7 // 2 donne 3 résultat comme Int

Le numéro de type accepte les valeurs fractionnaires et non fractionnaires. Ouvrez le REPL elm et essayez les exemples ci-dessous -

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
>

Chaîne et caractère

Le type de données String est utilisé pour représenter une séquence de caractères. Le type de données Char est utilisé pour représenter un seul caractère. Les valeurs de chaîne sont définies entre guillemets doubles "et les valeurs Char sont placées entre guillemets simples".

Sr. No. Type Exemple
1 String - Stocke une séquence de caractères "TutorialsPoint"
2 Char - Stocke les valeurs fractionnaires «T»

Ouvrez le REPL elm et essayez les exemples ci-dessous -

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éen

Le type de données Bool dans Elm ne prend en charge que deux valeurs: True et False. Le mot-clé Bool est utilisé pour représenter une valeur booléenne.

Sr. No. Type Exemple
1 Bool - Stocke les valeurs True ou False 1 == 1 renvoie Vrai

Ouvrez le REPL elm et essayez les exemples ci-dessous -

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

Types personnalisés

Elm prend en charge la création de types définis par l'utilisateur. Par exemple, considérons une application de paiement. L'application doit stocker différents modes de paiement - carte de crédit, carte de débit et banque en ligne. Ceci peut être réalisé en définissant un type personnalisé et en limitant sa valeur aux trois modes de paiement acceptables.

L'exemple suivant montre comment créer un type personnalisé.

> 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

Dans l'exemple ci-dessus, nous avons créé un type personnalisé PaymentMode. Les variables payment1 et payment2 sont affectées aux valeurs PaymentMode. Si la valeur affectée à la variable ne correspond à aucune des valeurs définies par le type PaymentMode, l'application lèvera une erreur de syntaxe.

Types de données structurées

Les types de données structurées peuvent être utilisés pour stocker plusieurs valeurs dans un format structuré. Elm prend en charge les types de données structurées suivants -

  • Tuple
  • List
  • Record
  • Record

Ceux-ci seront discutés en détail dans les prochains chapitres.