【问题标题】:What does in ? operator/prefix in Erlang mean?里面有什么? Erlang中的运算符/前缀是什么意思?
【发布时间】:2011-11-17 19:14:05
【问题描述】:

?MODULE 中的问号(在 Mochiweb make 命令生成的所有代码中都可以看到)是什么意思?

-export([start/1, stop/0, loop/2]).

start(Options) ->
    {DocRoot, Options1} = get_option(docroot, Options),
       Loop = fun (Req) ->
               ?MODULE:loop(Req, DocRoot)
       end,
    mochiweb_http:start([{name, ?MODULE}, {loop, Loop} | Options1]).

stop() ->
    mochiweb_http:stop(?MODULE).

loop(Req, DocRoot) ->
    ...

【问题讨论】:

    标签: erlang


    【解决方案1】:

    它表示a preprocessor macro?MODULE 是扩展为当前模块名称的预定义宏常量之一。

    【讨论】:

      【解决方案2】:

      这就是我们在 Erlang 中表示 MACROS 的方式。在编译时,这些宏被替换为实际含义。它们节省了重写代码片段或抽象出您将来可能更改的参数而不更改代码(只需要重新编译依赖于 MACRO 的源代码)。

      例如:

      -模块(square_plus)。 -编译(export_all)。 -定义(SQUARE(X),X * X)。 add_to_square(This,Number)-> ?SQUARE(This) + Number。

      等同于:

      -模块(square_plus)。 -编译(export_all)。 add_to_square(This,Number)-> (This * This) + Number。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-15
        • 1970-01-01
        • 2010-10-03
        • 1970-01-01
        • 2015-09-18
        • 2017-03-29
        • 2011-03-16
        相关资源
        最近更新 更多