2009-08-31 62 views
8

我是Erlang的新手。 发现在现有二郎项目如下-module属性声明:Erlang:模块属性

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

是什么意思的第二个参数(名单[名称,路径,版本])在这里?

我还没有在它的Erlang参考中找到任何信息。

+2

参数化模块还没有正式成为Erlang的一部分,尽管当前的发行版本支持它们。为了安全起见,除了新的,你不应该直接在参数化模块中调用函数。始终使用从新返回的参考。 – rvirding

+0

如果参数化的模块被移除然后不会新的停止工作? – Zubair

+0

这些确实应该在官方正式记录。现在有广泛使用的应用程序(例如Mochiweb)。例如它们在Mochiweb中的使用,请参阅http://code.google.com/p/mochiweb/source/browse/trunk/src/mochiweb_request.erl –

回答

7

这是一个参数化的模块。这是它的original paper。基本上你可以创建模块绑定特定值到这些变量的实例。您可以初始化一个为:

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

,然后调用其功能为:

> Mod:function(...) 

其中模块参数也函数体中可用。