Erlang:如何在模块外部使用 -define 宏?

标签 erlang

假设我有模块 test.erl,里面是宏 TOTAL :

-module(test)
-export([...])

-define(TOTAL,(100))

...

如果 get_total()在 test.erl 中定义,我可以调用 test:get_total().来自 REPL

如何调用 ?TOTAL (宏)在模块 test.erl 之外没有定义函数?

最佳答案

你可以把 -definetest.hrl文件,并使用 -include将其包含在其他模块中。见Erlang Preprocessor documentation了解更多信息。

测试.hrl

-define(TOTAL, (100)).

测试.erl
-module(test).
-export([...]).

-include("test.hrl").

...

其他.erl
-module(other).

-include("test.hrl").

io:format("TOTAL=~p~n", [?TOTAL]).

关于Erlang:如何在模块外部使用 -define 宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3816863/

相关文章:

erlang - Lisp Flavored Erlang - 消息传递原语

erlang - Erlang 中的非防御性编程

erlang - 处理队列的返回:out_r

c - 为什么使用 enif_alloc 而不是 malloc

erlang - 使用 RabbitMQ 延迟消息交换插件时出现“函数未导出”错误

erlang - 寻找 Erlang SMPP 客户端

functional-programming - 功能/ Actor 处理 WorldState 中的先有鸡还是先有蛋

performance - 如何微调牛仔的运行时行为?

erlang - 如何在erlang中读取mnesia数据库的所有记录?

erlang - 名为timer_server的gen_server导致定时器模块函数不返回