Elixir Notes: Modules
Published: 2021-01-28
Intro
A module is a collection of functions that can be used to organize your code in a manner similar to namespacing.
Modules are defined in Elixir with the defmodule keyword.
elixir
# Define a module
defmodule MyModule do
# Contents
end
# Define a nested helpers module
defmodule MyModule.Helpers do
# Contents
end
# Define module attributes
defmodule MyModule do
@some_attribute "some attribute value"
# Contents
endConsiderations
- Modules must start with an uppercase [A-Z]
- CamelCase is the formatting convention used for module naming.
- Modules can contain upper/lower case [a-zA-Z], _ underscore and the dot . characters.
- The . character signifies module hierarchy
- The . character is a syntastic convenience. After compilation there is no relation between MyModule and MyModule.Helpers
- Module attributes are compile time constants. The can also be registered and queried at runtime.
Links
https://elixir-lang.org/crash-course.html#modules
https://learning.oreilly.com/library/view/elixir-in-action/9781617295027/c02.xhtml