【问题标题】:Can can I call a function in the same Erlang Parameterised module?我可以在同一个 Erlang 参数化模块中调用函数吗?
【发布时间】:2010-06-16 06:05:25
【问题描述】:

我在 Erlang 中有一个参数化模块,我希望从同一个参数化模块的函数 B 中调用函数 A。我该怎么做?

【问题讨论】:

  • 远离参数化模块的另一个很好的例子。 :)

标签: erlang


【解决方案1】:

来自this论文:

在抽象模块的每个函数中,变量 THIS 总是隐式绑定到当前模块实例

所以你可以简单地在函数 B 中编写:

THIS:A().

【讨论】:

  • 在同一个模块中调用函数时不必这样做,THIS 会自动处理。它实际上被添加到参数中。调用THIS:b() 只能用于导出函数,然后将成为正常的erlang“远程”调用。示例非常简短,请参见图 3。
【解决方案2】:

只是为了概括一下答案。您不必做任何特殊的事情来调用参数化模块中的函数,只需像往常一样编写代码。只有当您想从模块内对导出的函数进行“远程”调用时,您才需要THIS:a()。在外部,您需要参数化模块参考。

虽然我同意@Christian,但请远离他们,你并不真的需要他们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 2021-05-01
    • 2017-09-13
    • 2021-09-22
    • 2022-01-01
    • 2013-07-22
    相关资源
    最近更新 更多