Elixir 是否可以在模块末尾使用插入?

Elixir 是否可以在模块末尾使用插入?,elixir,Elixir,假设我正在制作一个模块,其中模式匹配是它的主要功能,比如struct或fancy case语句;有没有一种方法可以让use Module在所用模块的底部插入一个子句?这样做的原因是添加默认子句,以捕获与声明的匹配失败的匹配 举一个人为的例子: defmodule NumberToNumber do use SwitchLib, default: 0 # import SomeMacros opt 1, "one" # convert("one"), do: 1

假设我正在制作一个模块,其中模式匹配是它的主要功能,比如struct或fancy case语句;有没有一种方法可以让
use Module
在所用模块的底部插入一个子句?这样做的原因是添加默认子句,以捕获与声明的匹配失败的匹配

举一个人为的例子:

defmodule NumberToNumber do
    use SwitchLib, default: 0
#   import SomeMacros

    opt 1, "one"
#   convert("one"), do: 1

    opt 2, "two"
    opt 3, "three"
    opt 4, "four"

    default 0            <-- Can this be procedurally generated?
#   convert(_), do: 0    <--     or this, for that matter,

end
defmodule NumberToNumber do
使用SwitchLib,默认值:0
#导入一些宏
选择1,“一”
#转换(“一”),做:1
选择2,“两个”
选择3,“三”
选项4,“四”
默认值0Yes

编译前的回调(如
@before_compile
)允许您在模块定义完成时将代码注入模块

除了编译前的
@
之外,还有其他有用的模块属性,如定义中的
@
和编译后的
@,您可以在

所有这些功能都可以与
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。您可以在和的文档中找到有关宏和编译环境的有用信息