W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
這時,你可能會想知道:究竟什么是Elixir中的別名,它是如何運作的?
Elixir中的別名是首字母大寫的id(例如String
,Keyword
等等),在編譯時會被轉(zhuǎn)化成原子.舉個例子,String
別名默認轉(zhuǎn)化成原子:"Elixir.String"
:
iex> is_atom(String)
true
iex> to_string(String)
"Elixir.String"
iex> :"Elixir.String" == String
true
使用?alias/2
?命令,我們可以簡單地修改別名要轉(zhuǎn)化成的原子.
別名轉(zhuǎn)化成原子是因為在Erlang虛擬機中模塊總是用原子來代表.例如,這是我們調(diào)用Erlang模塊的機制:
iex> :lists.flatten([1, [2], 3])
[1, 2, 3]
這也是我們之所以能動態(tài)地在一個模塊中調(diào)用給定的函數(shù):
iex> mod = :lists
:lists
iex> mod.flatten([1, [2], 3])
[1, 2, 3]
我們簡單地使用原子?:list
?調(diào)用了函數(shù)?flatten.
?
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: