目的
将多个模块中的函数使用同一模块调用
实现类似面向对象
继承
/重载
逻辑瞎折腾
1
2
3例如:
存在`util_lists`, `util_time` 等模块
使用统一接口`util:func/x`调用, 无需知道`func`具体在哪个模块
前提
需要加载的模块需要先编译
使用
1 | -compile([{parse_transform, func_merge_runtime}]). |
例子
- 目录结构
1 | tree /F |
- 编译
1 | erl -pa ebin -make |
- 运行
1 | Eshell V6.3 (abort with ^G) |
问题
在修改func_a
,func_b
模块后,func_merge
不会重新编译
要手动删除重新编译