2009-08-31 14 views
8

Sono nuovo di Erlang. trovato i seguenti -module dichiarazione di attributo in un progetto esistente Erlang:Erlang: attributo modulo

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

Che cosa significa il secondo parametro (lista [Nome, Percorso, Version]) qui?

Non ho trovato alcuna informazione nel riferimento Erlang su di esso.

+2

I moduli con parametri non sono ancora ufficialmente parte di Erlang anche se le attuali distribuzioni li supportano. Inoltre, per essere sicuri, tranne che per i nuovi, non si dovrebbe mai chiamare direttamente le funzioni in un modulo parametrato. Usa sempre l'eference restituito da new. – rvirding

+0

Se i moduli parametrizzati vengono rimossi, tuttavia, non si interromperanno i nuovi fermi? – Zubair

+0

Questi dovrebbero davvero essere documentati da qualche parte ufficialmente. Ora ci sono applicazioni ampiamente usate che li usano (Mochiweb, per esempio). Ad esempio del loro utilizzo in Mochiweb, vedi http://code.google.com/p/mochiweb/source/browse/trunk/src/mochiweb_request.erl –

risposta

7

Questo è un modulo parametrizzata. Ecco il original paper su di esso. Fondamentalmente è possibile creare istanze del modulo che vincolano valori specifici a tali variabili. È possibile inizializzare una come:

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

e quindi chiamare le sue funzioni come:

> Mod:function(...) 

dove i parametri del modulo sono disponibili nel corpo della funzione anche.

Problemi correlati