W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
alias
允許你為任何具名模塊賦予別名.想象一下我們的Math
模塊要使用一個(gè)特殊的列表執(zhí)行方法來(lái)做特定的數(shù)學(xué)操作:
defmodule Math do
alias Math.List, as: List
end
從現(xiàn)在起,任何提到List
的地方都會(huì)自動(dòng)擴(kuò)展成Math.List
.如果有人想訪問(wèn)原始的List
,就需要在之前加上模塊名Elixir.
:
List.flatten #=> uses Math.List.flatten
Elixir.List.flatten #=> uses List.flatten
Elixir.Math.List.flatten #=> uses Math.List.flatten
所有在Elixir中定義的模塊,都定義在一個(gè)主要Elixir命名空間中.為了方便,在調(diào)用它們時(shí)你可以省略"Elixir".
別名經(jīng)常用于定義縮寫(xiě).事實(shí)上,調(diào)用alias
時(shí)不帶:as
,就會(huì)自動(dòng)將模塊名的最后部分設(shè)為別名.例如:
alias Math.List
等同于
alias Math.List, as: List
注意alias
確定了語(yǔ)法范圍,能讓你在特定的函數(shù)中設(shè)置別名:
defmodule Math do
def plus(a, b) do
alias Math.List
# ...
end
def minus(a, b) do
# ...
end
end
在上述例子中,由于我們是在plus/2
函數(shù)中調(diào)用的alias
,所以別名只在函數(shù)plus/2
中可用.對(duì)minus/2
沒(méi)有影響.
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: