Alias de type

Un alias de type en Elm est, comme son nom l'indique, un alias désignant quelque chose d'autre. Par exemple en Elm, il existe les types de base Int et String. Il est possible de leur créer des alias :

type alias PlayerId = Int

type alias PlayerName = String

Ici nous avons créé deux alias de type qui pointent simplement vers des types de base d'Elm. Cela nous permet, lorsque nous avons une fonction comme ceci :

label: Int -> String

De l'écrire comme cela :

label: PlayerId -> PlayerName

De cette manière, il est beaucoup plus simple de comprendre ce qu'attend la fonction.

Enregistrements (records)

La définition d'un enregistrement en Elm ressemble à ça :

{ id : Int
, name : String
}

Lorsque vous voudrez écrire une fonction qui prendra en paramètre un enregistrement, sa signature ressemblera à ça :

label: { id : Int, name : String } -> String

Plutôt verbeux, mais heureusement, les alias de type sont là pour nous aider :

type alias Player =
    { id : Int
    , name : String
    }

label: Player -> String

Ici nous créeons un alias de type Player qui pointe vers la définition d'un enregistrement. Ensuite nous utilisons cet alias de type dans la signature de notre fonction.

Constructeurs

Les alias de type peuvent être utilisés comme constructeurs de fonctions. C'est à dire que l'on peut créer un véritable enregistrement en utilisant l'alias de type comme fonction.

type alias Player =
    { id : Int
    , name : String
    }

Player 1 "Sam"
==> { id = 1, name = "Sam" }

Ici nous créons un alias de type Player. Ensuite nous appelons Player comme une fonction en lui passant deux paramètres. Elle nous retourne un enregistrement avec les bons attributs. Notez que l'ordre des arguments détermine quelles valeurs vont être assignées à quels attributs.

results matching ""

    No results matching ""