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