Erlang你好,世界
示例
用Erlang编写“helloworld”应用程序时,您需要了解两件事:
使用您选择的文本编辑器以erlang编程语言编写源代码。
然后在erlang虚拟机中执行该应用程序。在此示例中,我们将通过erlangshell与erlangVM进行交互。
首先是应用程序源代码:
创建一个hello.erl包含以下内容的新文件:
-module(hello). -export([hello_world/0]). hello_world() -> io:format("Hello, World!~n", []).
让我们快速看一下这意味着什么:
-module(hello).所有erlang函数都存在于模块内部。然后使用模块来构建应用程序,这些应用程序是模块的集合。第一行是标识此模块,即hello。可以将模块与Java的包进行比较
-export([hello_world/0]).告诉编译器将哪些函数设为“公共”(与OO语言相比),以及相关功能的实用性。Arity是函数采用的参数数量。由于在erlang中,具有1参数的函数被视为与具有2个参数的函数不同的函数,即使名称可能完全相同。即,与例如hello_world/0完全不同的功能hello_world/1。
hello_world()这是函数的名称。该->指示转变到功能的实现(身体)。这可以理解为“hello_world()定义为...”。请注意,hello_world()(没有参数)hello_world/0在VM中由标识hello_world(Some_Arg)为hello_world/1。
io:format("Hello,World!~n",[])从模块中io,format/2调用函数function,这是标准输出的函数。~n是格式说明符,表示打印新行。该[]是一个列表变量来打印在输出字符串,这是在这种情况下,没有什么格式说明表示。
所有erlang语句必须以.(点)结尾。
在Erlang中,返回函数中最后一条语句的结果。
现在,让我们运行我们的应用程序:
从文件hello.erl文件所在的目录启动erlangshell:
$erl
您应该得到一个如下所示的提示(您的版本可能有所不同):
Eshell V8.0 (abort with ^G) 1>
现在输入以下命令:
1> c(hello). {ok,hello} 2> hello:hello_world(). Hello, World! ok
让我们逐行浏览每一行:
c(hello)-此命令c在一个原子上调用该函数hello。这有效地告诉Erlang查找文件hello.erl,将其编译为模块(hello.beam将在目录中生成一个名为的文件)并将其加载到环境中。
{ok,hello}-这是调用上述函数的结果c。它是一个包含一个原子ok和一个原子的元组hello。Erlang函数通常返回{ok,Something}或{error,Reason}。
hello:hello_world()-这hello_world()从模块中调用一个函数hello。
Hello,World!-这就是我们的函数打印的内容。
ok-这是我们的函数返回的结果。由于Erlang是一种函数式编程语言,因此每个函数都将返回某内容。在我们的例子中,即使我们没有在中返回任何内容hello_world(),该函数中的最后一个调用是toio:format(...)并且该函数返回了ok,这反过来又是我们函数返回的结果。