2009-08-31 8 views
8

Je suis nouveau chez Erlang. constaté ce qui suit -module déclaration d'attribut dans un projet Erlang existant:Erlang: attribut de module

-module(mod_name, [Name, Path, Version]). 

Que signifie le second paramètre (liste [Nom, Chemin, version]) ici?

Je n'ai trouvé aucune information dans la référence Erlang à ce sujet.

+2

Les modules paramétrés ne font pas encore officiellement partie d'Erlang bien que les distributions actuelles les supportent. Pour être sûr, sauf pour les nouveaux, vous ne devriez jamais appeler directement les fonctions dans un module paramétré. Utilisez toujours la référence renvoyée par new. – rvirding

+0

Si les modules paramétrés sont supprimés alors alors le nouveau ne fonctionnera plus? – Zubair

+0

Ceux-ci devraient vraiment être documentés quelque part officiellement. Il existe maintenant des applications largement utilisées qui les utilisent (Mochiweb, par exemple). Par exemple de leur utilisation dans Mochiweb, voir http://code.google.com/p/mochiweb/source/browse/trunk/src/mochiweb_request.erl –

Répondre

7

Ce module est paramétré. Voici le original paper dessus. Fondamentalement, vous pouvez créer des instances du module liant des valeurs spécifiques à ces variables. Vous pouvez initialiser un comme:

> Mod = mod_name:new("MyName", "/path", '0.1'). 

puis appeler ses fonctions:

> Mod:function(...) 

où les paramètres du module sont également disponibles dans le corps de la fonction.