gpt4 book ai didi

erlang - erlang中Hello World的正确脚本?

转载 作者:行者123 更新时间:2023-12-04 17:13:11 25 4
gpt4 key购买 nike

所以我知道基本的 Hello World 程序(如输出字符串而不是为 Erlang 学习而设计的 spawn 和其他东西)如下

-module(hello).
-export([start/0]).

start() ->
io:format("Hello, World!").

然后我运行 erl
>erl

类型
>c(hello)

进而
>hello

对于 escript 版本,会是这样吗?
#!/usr/bin/env escript
-export([main/1]).

main([]) -> io:format("Hello, World!~n").

然后
chmod u+x hello

你好,文件名在哪里?

为什么我不能使用与模块相同的格式? (main/0 和 main()) ?

最佳答案

这正是 escript 系统的工作方式。您的 escript 必须包含函数 main/1供运行时调用。 escript 需要一种将命令行参数传递给函数的方法,它以字符串列表的形式执行此操作,因此需要您的 main函数接受一个参数。

当您构建一个模块并从 shell 手动运行它时,类似的要求适用 - 您的模块必须导出您要调用的函数(在您的示例中为 start/0)。

事实上,你的例子是不正确的。您创建并编译模块但从不调用它。评估

 hello.

在 shell 中简单地重复原子值 hello .要实际调用您的 hello world 函数,您需要评估:
hello:start().

关于erlang - erlang中Hello World的正确脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4219682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com