顶级分配
Top level assignment
我试图在 Erlang 中使用高阶函数创建一个函数。令我惊讶的是,这似乎不太对劲。这是我遇到的错误的简化示例。
-module(test).
-export([main/0]).
X = 1.
main() ->
io:format("~p~n", [X]).
并且在 erl 中:
> c(test).
test.erl:4: syntax error before: X
test.erl:7: variable 'X' is unbound
error
您是否知道可以采取什么措施来避免这种情况?
Erlang 中没有全局变量。您可以改用函数,例如:
-module(test).
-export([main/0]).
x() ->
1.
main() ->
io:format("~p~n", [x()]).
对于像文字这样简单的东西 1
你也可以定义一个预处理器宏,像这样:
-define(X, 1).
main() ->
io:format("~p~n", [?X]).
但鉴于您的问题提到了高阶函数,您可能不想使用预处理器。
我试图在 Erlang 中使用高阶函数创建一个函数。令我惊讶的是,这似乎不太对劲。这是我遇到的错误的简化示例。
-module(test).
-export([main/0]).
X = 1.
main() ->
io:format("~p~n", [X]).
并且在 erl 中:
> c(test).
test.erl:4: syntax error before: X
test.erl:7: variable 'X' is unbound
error
您是否知道可以采取什么措施来避免这种情况?
Erlang 中没有全局变量。您可以改用函数,例如:
-module(test).
-export([main/0]).
x() ->
1.
main() ->
io:format("~p~n", [x()]).
对于像文字这样简单的东西 1
你也可以定义一个预处理器宏,像这样:
-define(X, 1).
main() ->
io:format("~p~n", [?X]).
但鉴于您的问题提到了高阶函数,您可能不想使用预处理器。