2009-08-31 2 views
8

Ich bin neu in Erlang. fanden die folgende -Modul Attributdeklaration in einem bestehenden Erlang Projekt:Erlang: Modul Attribut

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

Was die zweiten Parameter (Liste [Name, Pfad, Version]) bedeutet hier?

Ich habe keine Informationen in der Erlang-Referenz darauf gefunden.

+2

Parametrisierte Module sind noch nicht offiziell Teil von Erlang, obwohl die aktuellen Distributionen sie unterstützen. Auch, um sicher zu sein, außer für neue, sollten Sie niemals Funktionen in einem parametrierten Modulen direkt aufrufen. Verwenden Sie immer die von new zurückgegebene Referenz. – rvirding

+0

Werden parametrierte Module entfernt, funktioniert dann nicht mehr? – Zubair

+0

Diese sollten wirklich irgendwo offiziell dokumentiert werden. Es gibt jetzt weit verbreitete Apps, die sie verwenden (Mochiweb, zum Beispiel). Zum Beispiel über ihre Verwendung in Mochiweb, siehe http://code.google.com/p/mochiweb/source/browse/trunk/src/mochiweb_request.erl –

Antwort

7

Dies ist eine parametrisierte Modul. Hier ist die original paper drauf. Grundsätzlich können Sie Instanzen des Moduls erstellen, die bestimmte Werte an diese Variablen binden. Sie können eine als initialisieren:

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

und dann seine Funktionen aufrufen als:

> Mod:function(...) 

wo die Modulparameter auch in der Funktionskörper zur Verfügung stehen.