Erlide:如何在运行配置中设置启动模块



我在"运行配置"中设置启动模块和功能时遇到问题我是这样做的:"运行 ->运行配置",在"开始"部分中,我正在设置模块:模组,功能:你好

我的代码:

-module(mod).
-export([hello/0]).
hello()-> io:format("42").

现在,当我点击"运行"时,我希望 mod:hello() 自动执行,但它不起作用。我做错了什么?

代码确实被执行了...

当您点击"运行"时,mod:hello()确实会被执行。问题是,mod:hello()的执行是为了系统初始化,比如加载库代码和初始化循环状态。mod:hello() 的副作用,即字符串 "42" 作为 stdout 将不会反映在 Eclipse 控制台中。为了证明我的观点,我们可以创建一些更明确和更持久的副作用,例如在文件系统中创建一个名为 output_file.txt 的文件。将mod.erl更改为如下所示的内容:

-module(mod).
-export([hello/0]).
hello() ->
    os:cmd("touch output_file.txt").

点击"运行",您会发现workspace目录下正在创建一个output_file.txt文件。这是处决mod:hello()的证据.

实现您想要的...

在 Unix shell 中:

$ erlc mod.erl 
$ erl -noshell -s mod hello -s init stop
42

根据您要执行的内容,除了上述答案之外,还有另一种选择:"实时表达式"。在控制台所在的位置有一个具有此名称的视图,您可以在其中输入表达式并在每次重新编译模块时启用该表达式以求值。

这适用于评估起来不重且没有副作用的表达,可以用作测试套件的替代形式。

最新更新