Elixir:模块简要说明

作为一种功能语言,Elixir高度依赖功能。 由于数据的不变性,典型的Elixir程序包含许多小功能,并且可以将多个功能进一步组织为模块。

模块是功能的集合,就像名称空间一样。 每个Elixir函数都必须在模块内部定义。 Elixir带有提供许多有用模块的标准库。 例如, IO模块可用于执行各种输入/输出操作。

让我们看看如何使用IOputs功能消息打印到控制台,如何使用iex打开Elixir shell并添加以下内容。

  iex(1)> IO.puts(“ Hello Elixir World!”) 

我们将收到的输出将类似于以下内容:

 你好长生不老药世界! 
:好

如您所见,调用模块时,Elixir的标准语法为ModuleName.function_name(args) 。 为了定义自己的模块,可以使用defmodule构造。 在模块内部,您可以使用def构造定义函数。

模块名称必须遵循某些规则。 它以大写字母开头,通常以CamelCase样式编写。 模块名称可以由字母数字,下划线和点(。)字符组成。 后者通常用于按层次组织模块:

  defmodule Geometry.Rectangle做 
-一些代码-
结束

defmodule Geometry.Circle做
-一些代码-
结束

点字符是一种方便。 编译代码后,模块之间就没有特殊的层次关系,也没有查询层次的服务。 只是语法糖可以帮助您确定名称。

您还可以嵌套模块:

  defmodule几何做 
defmodule矩形做
-一些代码-
结束
---一些代码---
结束

可以使用Geometry.Rectangle引用子模块。 同样,此嵌套很方便。 编译后,模块GeometryGeometry.Rectangle之间没有特殊关系。

让我们看看如何创建自己的模块,首先创建一个名为Calculator.exe的文件,然后向其中添加以下代码。

  defmodule计算器做 
def加法(a,b)做
a + b
结束

def减(a,b)做
-
结束
结束

那返回值呢? 在Elixir中,所有具有返回值的都是表达式。 函数的返回值是其最后一个表达式的返回值。 Elixir没有明确的回报。

现在,让我们使用iex Calculator.exe命令打开文件,并测试我们的新模块

  iex(1)> Calculator.addition(5,10) 
>> 15
iex(2)>计算器。减法(10,5)
>> 5

创建模块并开始使用它很简单。