Refer To A Module Within Itself
Elixir comes with the __MODULE__
reserve word for referencing a module within itself. This is handy for things like structs.
defmodule SomeNamespace.MyModule do
defstruct [:id]
def do_thing(%__MODULE__{}=thing) do
# ...
end
end
You can use an alias in order to ditch __MODULE__
and perhaps make your code a bit more human readable.
defmodule SomeNamespace.MyModule do
alias __MODULE__, as: MyModule
defstruct [:id]
def do_thing(%MyModule{}=thing) do
# ...
end
end
Last updated
Was this helpful?