浏览 2842 次
锁定老帖子 主题:把Module搞得像Class
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-11-09
http://www.clickcaster.com/items/the-black-art-of-erlangs-parameterized-modules
引用 To declare a parameterized module, simply specify some variable names in the module declaration...Parameterized modules give you what are effectively constants which can be declared per "instance" of a module.
非标准用法,风险自负。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-11-10
这个提案实际上是一个不那么甜也不那么淡的语法糖. 他必须仍然遵守no effects的约定.Ulf Wigert提到他对Paramazied Modules的扩充
-module(pmod, [X, Y]). -export([set_Y/1, sum/0]). sum() -> X + Y. set_Y(NewY) -> {?MODULE, X,NewY}. Eshell V5.5.4.3 (abort with ^G) 1> 1> c(pmod). {ok,pmod} 2> M = pmod:new(3,4). {pmod,3,4} 3> M:sum(). 7 4> M1 = M:set_Y(5). {pmod,3,5} 5> M1:sum(). 8 M1=M:set_Y(5) 这一点非常重要,如果允许M:set_Y(5),M:sum()输出8的话那么整个Erlang就分崩离析 |
|
返回顶楼 | |