Elixir - Types de données

Pour utiliser n'importe quelle langue, vous devez comprendre les types de données de base pris en charge par la langue. Dans ce chapitre, nous aborderons 7 types de données de base supportés par le langage elixir: entiers, flottants, booléens, atomes, chaînes, listes et tuples.

Types numériques

Elixir, comme tout autre langage de programmation, prend en charge à la fois les entiers et les flottants. Si vous ouvrez votre shell elixir et entrez un entier ou un flottant en entrée, il retournera sa valeur. Par exemple,

42

Lorsque le programme ci-dessus est exécuté, il produit le résultat suivant -

42

Vous pouvez également définir des nombres en bases octales, hexadécimales et binaires.

Octal

Pour définir un nombre en base octale, préfixez-le avec «0o». Par exemple, 0o52 en octal équivaut à 42 en décimal.

Hexadécimal

Pour définir un nombre en base décimale, préfixez-le avec «0x». Par exemple, 0xF1 en hexadécimal équivaut à 241 en décimal.

Binaire

Pour définir un nombre en base binaire, préfixez-le avec «0b». Par exemple, 0b1101 en binaire équivaut à 13 en décimal.

Elixir prend en charge la double précision 64 bits pour les nombres à virgule flottante. Et ils peuvent également être définis à l'aide d'un style d'exponentiation. Par exemple, 10145230000 peut être écrit sous la forme 1.014523e10

Atomes

Les atomes sont des constantes dont le nom est leur valeur. Ils peuvent être créés à l'aide du symbole de couleur (:). Par exemple,

:hello

Booléens

Elixir prend en charge true et falsecomme booléens. Ces deux valeurs sont en fait attachées aux atomes: true et: false respectivement.

Cordes

Les chaînes d'Elixir sont insérées entre des guillemets doubles et sont encodées en UTF-8. Ils peuvent s'étendre sur plusieurs lignes et contenir des interpolations. Pour définir une chaîne, entrez-la simplement entre guillemets -

"Hello world"

Pour définir des chaînes multilignes, nous utilisons une syntaxe similaire à python avec des guillemets doubles triples -

"""
Hello
World!
"""

Nous en apprendrons davantage sur les chaînes, les binaires et les listes de caractères (similaires aux chaînes) dans le chapitre sur les chaînes.

Binaires

Les binaires sont des séquences d'octets entre << >> séparés par une virgule. Par exemple,

<< 65, 68, 75>>

Les binaires sont principalement utilisés pour gérer les bits et les octets de données liées, si vous en avez. Ils peuvent, par défaut, stocker de 0 à 255 dans chaque valeur. Cette limite de taille peut être augmentée en utilisant la fonction de taille qui indique combien de bits il faut pour stocker cette valeur. Par exemple,

<<65, 255, 289::size(15)>>

Listes

Elixir utilise des crochets pour spécifier une liste de valeurs. Les valeurs peuvent être de n'importe quel type. Par exemple,

[1, "Hello", :an_atom, true]

Les listes sont livrées avec des fonctions intégrées pour la tête et la fin de la liste nommées hd et tl qui renvoient respectivement la tête et la queue de la liste. Parfois, lorsque vous créez une liste, elle renvoie une liste de caractères. En effet, lorsque elixir voit une liste de caractères ASCII imprimables, il l'imprime sous forme de liste de caractères. Veuillez noter que les chaînes et les listes de caractères ne sont pas égales. Nous discuterons plus en détail des listes dans les chapitres suivants.

Tuples

Elixir utilise des accolades pour définir les tuples. Comme les listes, les tuples peuvent contenir n'importe quelle valeur.

{ 1, "Hello", :an_atom, true

Une question se pose ici, pourquoi fournir les deux lists et tuplesquand ils travaillent tous les deux de la même manière? Eh bien, ils ont des implémentations différentes.

  • Les listes sont en fait stockées sous forme de listes liées, donc les insertions, les suppressions sont très rapides dans les listes.

  • Les tuples, en revanche, sont stockés dans un bloc de mémoire contigu, ce qui accélère leur accès mais ajoute un coût supplémentaire sur les insertions et les suppressions.