在Elixir中,可以通過使用模塊來實現代碼的模塊化和封裝。模塊是一種包含函數、宏和數據結構的容器,可以將相關功能組織在一起,并對外提供接口。
要定義一個模塊,可以使用defmodule
關鍵字,如下所示:
defmodule MyModule do
# 定義函數
def hello do
IO.puts "Hello, world!"
end
end
在上面的示例中,我們定義了一個名為MyModule
的模塊,并在其中定義了一個名為hello
的函數。要在其他地方使用這個模塊中的函數,可以通過模塊名和函數名來調用,如下所示:
MyModule.hello()
此外,Elixir還支持訪問控制修飾符來實現封裝。可以使用@moduledoc
和@doc
注解來提供模塊級別和函數級別的文檔,以及@spec
注解來定義函數的簽名,如下所示:
defmodule MyModule do
@moduledoc """
This is a module documentation.
"""
@doc "This is a function documentation."
def hello() do
IO.puts "Hello, world!"
end
@spec say_hello(name :: String.t) :: String.t
def say_hello(name) do
"Hello, #{name}!"
end
end
通過合理使用模塊和訪問控制修飾符,可以實現代碼的模塊化和封裝,提高代碼的可維護性和可復用性。