2016-09-22 50 views
0

我需要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 

还是有其他选择吗?

+1

别名项目{Model1,Model2,...,ModelN}应该可以工作。 – arpit

+0

@arpit很棒,感谢分享。有没有提及这个{}'功能(我想它可能会工作吗?) – mudasobwa

回答

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 
+0

嗯,我真的认为Elixir是一种顶尖的语言,除了少数几个比特外,我认为它是全部。在这个特别的我认为,我的屏幕真实状态的价值超过超级干净的代码。我的目标是在一个屏幕中查看最多的代码逻辑,而无需上下滚动以获取它。因为'别名'是一个超级简单的概念,当你不使用'as'时没有犯错的机会''我相信这可能是有价值的。 –

+0

然后请使用Elixir的权力,并声明自己的宏'defmacro别名'接受一个普通的列表并生成一捆'别名'宏:) – mudasobwa

+0

请参阅更新。 – mudasobwa