2016-09-22 203 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