Erlang(9):常識補充

1. apply apply(Mod, Func, [Arg1, Arg2, ..., ArgN]) 等價於 Mod:Func(Arg1, Arg2, ..., ArgN) 區別在於,使用apply,Mod和Func是能夠算出來的。 不推薦使用apply,許多分析工具都沒法得知發生了什麼,編譯器優化也可能無論用。 2.元數 函數參數的數量叫作元數。 函數名相同,元數不一樣,算是不一樣的函數。 3.屬性 模塊屬性的語法是-XXX(...). -module(modname). 模塊聲明,必須是第一個屬性。必須跟文件名同樣。 -import(Mod,[Name1/Arity1, Name2/Arity2,...]) 導入了以後,就無需指定模塊名了。 -export([Name1/Arity1, Name2/Arity2, ...]). 導出了以後,模塊外可使用這些函數了。 -compile(Options). 添加Options到編譯器選項列表中。 -vsn(Version). 指定模塊版本號 用戶定義屬性 -XXX(Vaule). 好像沒什麼不一樣啊。 自定義的屬性,會表現爲{attributes, ...}的下屬數據。 經過module_info()函數能夠返回一個屬性列表,內含全部與編譯模塊相關的元數據。 module_info(X)能夠返回單個屬性 beam_lib:chunks("attrs.beam",[attributes]).在不載入模塊代碼的狀況下提取屬性 4.塊表達式 使用 begin ... end 包着,就像C++的{}同樣。 5.註釋 %,沒有塊註釋 6.動態代碼載入 每次調用函數的時候,都是最新的程序。 更新後,舊版本的程序還在運行,可是erlang只會運行兩個版本的程序。 若是再多一個新版本,最舊的就會被清除。 7.包含文件 -include(Filename). 通常是包含.hrl文件。 8.++表示列表相加,--表示列表相減 相減的時候,若是重複出現的元素,只會移除對應的次數,而不必定是所有移除。 9.宏 -define(XXX,YYY).把?XXX替換成YYY。記得要使用?  -undef(Macro). 取消宏的定義 -ifdef(Macro). 僅當有過定義時才執行後面的代碼。 -ifndef(Macro). 僅當Macro未定義才執行後面的代碼。 -else.  -elseif 含義跟C++的差很少 10.數字 整數: K進制整數,K#Digits,最高進制數是36。 其實更加高的也能夠,只是沒法輸入和輸出顯示而已。 11.比較 >   大於       <  小於 =<  小於等於   >= 大於等於 ==  等於,只有比較整數和浮點數的時候才用 /= 不等於 =:= 徹底相等,通常狀況下應該用這個 =/= 不徹底相等 12.以_開頭的變量,聲明瞭,不使用,編譯器也不會發警告。
相關文章
相關標籤/搜索