📅  最后修改于: 2023-12-03 15:14:51.751000             🧑  作者: Mango
Elixir是一种运行在Erlang虚拟机上的函数式编程语言,而模块是Elixir中最基本的单元。
要创建一个新的模块,只需使用defmodule
命令,后面跟着模块名和可选的参数,如下所示:
defmodule MyModule do
# 模块代码放在这里
end
一个模块可以包含以下成员:
要在模块中定义一个函数,使用def
命令,后面跟着函数名和可选参数,如下所示:
defmodule MyModule do
def my_function(param1, param2) do
# 函数代码放在这里
end
end
要在模块中定义一个宏,使用defmacro
命令,后面跟着宏名称和可选参数,如下所示:
defmodule MyModule do
defmacro my_macro(param1, param2) do
# 宏代码放在这里
end
end
要在模块中定义一个变量,使用@
符号,后面跟着变量名和可选的初始值,如下所示:
defmodule MyModule do
@my_variable "Hello, world!"
end
要在模块中定义一个常量,使用defconst
命令,后面跟着常量名称和可选的初始值,如下所示:
defmodule MyModule do
defconst my_constant "Hello, world!"
end
默认情况下,模块中的所有成员都是私有的,只能在模块内部使用。要将它们导出,以便在其他模块中使用,可以使用def
、defmacro
、defconst
命令的export
标志,如下所示:
defmodule MyModule do
def my_function(param1, param2) do
# 函数代码放在这里
end
defmacro my_macro(param1, param2) do
# 宏代码放在这里
end
@my_variable "Hello, world!"
defconst my_constant "Hello, world!"
# 导出成员
export [
my_function: 2,
my_macro: 2,
@my_variable: 0,
my_constant: 0
]
end
为了避免在代码中使用长模块名,可以给模块设置一个别名。要设置一个别名,使用alias
命令,如下所示:
alias MyModule, as: MM
现在可以在代码中使用MM
来引用MyModule
。
模块是Elixir中最基本的单元,它可以包含函数、宏、变量和常量。要导出模块成员,使用export
标志。要设置模块别名,使用alias
命令。