我需要在同一个文件中alias
多个模型,并且像往常一样在我的文件中占用大量可见空间:
alias Project.Model1
alias Project.Model2
...
alias Project.ModelN
我查看了文档,我认为不可能这样做:
alias (Project.Model1, Project.Model2,...,Project.ModelN)
我是否需要这样做:
alias Project.Model1 alias Project.Model2 ... alias Project.ModelN
或者有替代方案吗?
答案 0 :(得分:10)
您可以使用花括号来执行此操作:
{{1}}
请参阅http://elixir-lang.org/getting-started/alias-require-and-import.html#multi-aliasimportrequireuse
答案 1 :(得分:1)
请参阅@ patrick-oscity对此特定任务的回答。
Kernel.alias/2
是一个宏,接受两个参数:模块和[可选] Keyword
有一个键as
:[as: ...]
。
所以,对你的问题的简单回答是“你做不到。”
为什么要纠缠你的代码未来的读者?请使用Elixir样式指南,每1行只添加1个别名。
UPD 虽然您仍希望在一行中列出所有别名,但请定义您自己的宏:
defmacro aliases(macros) when is_list(macros) do
for macro <- macros do
quote do
alias unquote(macro)
end
end
end