W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Elixir提供了宏作為元編程的機(jī)制(編寫能生成代碼的代碼).
宏是在編譯時(shí)執(zhí)行和擴(kuò)展的代碼塊.這意味著,為了使用一個(gè)宏,我們要保證它的模塊和實(shí)現(xiàn)都在編譯過程中可用.這通過?require
?命令完成:
iex> Integer.is_odd(3)
** (CompileError) iex:1: you must require Integer before invoking the macro Integer.is_odd/1
iex> require Integer
Integer
iex> Integer.is_odd(3)
true
在Elixir中,Integer.is_odd/1
被定義為一個(gè)宏,所以它可以被用作一個(gè)守衛(wèi).這意味著,為了調(diào)用Integer.is_odd/1
,我們需要先要求Integer
模塊.
通常一個(gè)模塊不需要在使用前被要求,除非我們想要使用那個(gè)模塊中的宏.試圖調(diào)用一個(gè)沒有載入的宏將會(huì)拋出一個(gè)錯(cuò)誤.注意像alias
命令一樣,require
也確定了語法范圍.我們將在下一章中更多地討論宏.
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: