erlang - 在 erlang 模块中使用匿名函数时出现问题

标签 erlang anonymous-function

当我在 erlang 中使用匿名函数时,一个问题引起了我的注意。 该函数定义如下

-module(qt). 
-export([ra/0]). 
ra = fun() -> 4 end. 

但这不起作用

-export(Ra/0]). 
Ra = fun() -> 4 end. 

这也不是 谁能告诉我为什么 erlang 表现出这种行为?

最佳答案

Erlang 模块不能导出变量,只能导出函数。

您可以通过导出一个具有零参数且仅返回一个值的函数来实现类似于导出变量的功能(匿名函数是有效的返回值):

-module(qt).
-export([ra/0]).
ra() ->
    fun() -> 4 end.

现在您可以从 shell 中使用它:

1> c(qt).
{ok,qt}
2> qt:ra().
#Fun<qt.0.111535607>
3> (qt:ra())().
4

关于erlang - 在 erlang 模块中使用匿名函数时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18401291/

相关文章:

javascript - 即使使用 erlang,使用 couchDB 的过滤器也非常慢

Erlang - 在不同进程的 tcp 套接字上同时发送(..)可以吗?

c# - Moq 具有匿名类型的函数

scala - Scala 匿名函数中的模式匹配

php - 如何在 PHP 的类中使用匿名函数?

python - 在 Python 中使用匿名函数

erlang - 为什么可以在 Erlang 中创建对同一进程的多个监视器引用?

ubuntu - Rabbitmq 监听所有接口(interface)

Erlang 模块的语法树与 epp :parse_file is not full and erl_parse:parse_form gives an error

PHP:非匿名函数的 use() 替代方法