我在“运行配置”中设置启动模块和功能时遇到问题 我这样做: “运行 - >运行配置”和“开始”部分我正在设置 模块:mod, 功能:你好
我的代码:
-module(mod).
-export([hello/0]).
hello()-> io:format("42").
现在,当我点击“运行”时,我想要自动执行mod:hello(),但它不起作用。 我做错了什么?
答案 0 :(得分:1)
代码确实已执行......
当您点击“运行”时,mod:hello()
会被执行。问题是,mod:hello()
的执行意味着系统初始化,例如加载库代码和初始化循环状态。 mod:hello()
的副作用(字符串“42”作为标准输出)将不会反映在Eclipse控制台中。为了证明我的观点,我们可以创建一些更明确和更持久的副作用,就像在名为output_file.txt
的文件系统中创建文件一样。将mod.erl
更改为以下内容:
-module(mod).
-export([hello/0]).
hello() ->
os:cmd("touch output_file.txt").
点击“运行”,您会在output_file.txt
目录下找到正在创建的workspace
文件。这是执行mod:hello()
的证据。
实现您的目标......
在Unix shell中:
$ erlc mod.erl
$ erl -noshell -s mod hello -s init stop
42
答案 1 :(得分:0)
根据您要执行的内容,可以选择上面的答案:“实时表达式”。在控制台的同一位置有一个带有此名称的视图,您可以在其中输入表达式并在每次重新编译模块时启用它以进行评估。
这非常适用于评估不重且没有副作用的表达式,可以用作替代测试套件的形式。