English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Modules Erlang

Un module est un ensemble de fonctions regroupées sous un nom unique dans un fichier unique. De plus, toutes les fonctions dans Erlang doivent être définies dans un module.

La plupart des fonctions de base, telles que les opérations arithmétiques, logiques et booléennes, sont déjà disponibles car le module par défaut est chargé au moment de l'exécution du programme. Chaque autre fonction définie dans le module que vous allez utiliser nécessite l'utilisation de Module: Fonction (Arguments) de la forme pour l'appeler.

Définir le module

On peut déclarer deux types de contenu en utilisant le module : les fonctions et les propriétés. Les propriétés sont des métadonnées décrivant le module lui-même, comme son nom, les fonctions visibles à l'extérieur, l'auteur du code, etc. Ces métadonnées sont très utiles car elles indiquent au compilateur comment il doit travailler, et elles permettent aux gens de récupérer des informations utiles à partir du code compilé sans avoir à consulter le code source.

La syntaxe de la déclaration de fonction est la suivante :

Grammaire

-module(modulename)

Ici, modulename est le nom du module. Cela doit être dans la première ligne du code du module. Le programme suivant montre un exemple d'un module appelé helloworld.

Exemple

-module(helloworld). 
-export([start/0]). 
start() -> 
   io:fwrite("Hello World").

Le résultat de la sortie du code ci-dessus est -

Hello World

Propriétés du module

Les propriétés du module définissent des propriétés spécifiques du module, composées de marqueurs et de valeurs.

La syntaxe générale des propriétés est -

Grammaire

-Tag(Value)

Le programme d'exemple suivant est utilisé pour démontrer comment utiliser les propriétés du module. -

Exemple

-module(helloworld). 
-author("TutorialPoint"). 
-version("1.0"). 
-export([start/0]). 
start() -> 
   io:fwrite("Hello World").

Définition du programme ci-dessus2des propriétés personnalisées : author et version, respectivement utilisées pour représenter l'auteur et le numéro de version du programme.

Le résultat de la sortie du code ci-dessus est -

Hello World

Propriétés préconstruites

Erlang possède certaines propriétés préconstruites qui peuvent être connectées aux modules, regardons-les.

export

Les propriétés d'exportation utiliseront une liste de nombres de fonctions et de paramètres pour les exporter dans d'autres modules. Elle définira l'interface du module. Nous avons vu cela dans l'exemple précédent.

Grammaire

export([FunctionName1/FunctionArity1,.,FunctionNameN/FunctionArityN])

Ici

  • FunctionName − C'est le nom de la fonction dans le programme ;

  • FunctionArity − C'est le nombre de paramètres associés à la fonction ;

Exemple

-module(helloworld). 
-author("TutorialPoint"). 
-version("1.0"). 
-export([start/0]). 
start() -> 
   io:fwrite("Hello World").

Le résultat de la sortie du code ci-dessus est -

Hello World

Importation

Les attributs d'importation sont utilisés pour importer des fonctions d'un autre module pour les utiliser localement

Grammaire

-import(modulename, [functionname/parameter]).

Ici

  • Modulename − C'est le nom du module à importer

  • functionname/parameter − C'est la fonction à importer dans le module

Exemple

-module(helloworld). 
-import(io,[fwrite/1]). 
-export([start/0]). 
start() -> 
   fwrite("Hello, world!\n").

Dans le code ci-dessus, nous utilisons la clé de mots importée pour importer la bibliothèque "io", spécifiant l'importation de la fonction fwrite. Donc, maintenant, chaque fois que vous appelez la fonction fwrite, vous n'avez pas besoin de mentionner le nom du module à chaque fois.

Le résultat de la sortie du code ci-dessus est -

Hello, world!