[Erlang開發(fā)之路]八锭碳、Erlang順序編程補漏

一环肘、算數(shù)表達式及其優(yōu)先級

操作符 描述 參數(shù) 優(yōu)先級
X+/-Y 加減法 數(shù)值 3
X*/Y 乘除法 數(shù)值 2
X div Y 整除 整數(shù) 2
X rem Y 取余 整數(shù) 2
X band Y 按位于 整數(shù) 2
X bor Y 按位或 整數(shù) 3
X bxor Y 按位異或 整數(shù) 3
X bsl N 左移 整數(shù) 3
X bsr N 右移 整數(shù) 3
bnot 按位取反 整數(shù) 2

二糜芳、元數(shù)(arity)

即函數(shù)的參數(shù)個數(shù)

三、屬性

1.預定義的模塊屬性

  • -module(modname).
    modname必須是一個原子類型魄衅,且和文件名一致

  • -import(Mod,[Fun1/Arity,...])
    從Mod中導入列表中的函數(shù)到本模塊中峭竣,調(diào)用時就無需指定模塊名了,但是erlang標準庫是不用導入的

  • -export([Fun1/Arity,....])
    導出當前模塊里的函數(shù)晃虫,只有導出之后才可以被外部調(diào)用

  • -compile(Options)
    編譯器的編譯選項皆撩,可以是單個,也可以是列表

  • -vsn(Version)
    指定模塊的版本號哲银,Version可以是任何字面數(shù)據(jù)類型

2.用戶定義的模塊屬性

  • -sometag(Value)
    sometag必須是一個原子類型扛吞,Value是一個字面數(shù)據(jù)類型,編譯時會被打包荆责,運行時可以讀取屬性
    讀取方法:modname:module_info()
    返回一個列表,Value在其中一個tag為attributes的元組中
    另一種讀取方法:beam_lib:chunks("ModSrc",[attributes])區(qū)別在于前者需要加載模塊滥比,后者不需要

四、塊表達式

應用場景:代碼某處要求是單個表達式做院,但我們需要做多個事情盲泛,也就是使用表達式序列。
舉例:

begin
    Expr1,
    ...,
    ExprN
 end.

五键耕、布爾值

Erlang沒有單獨的布爾值類型寺滚,但是可以用原子類型的true和false表示

六、布爾表達式

  • not B1:邏輯非
  • B1 and B2:邏輯與
  • B1 or B2:邏輯或
  • B1 xor B2:邏輯異或

七屈雄、注釋

Erlang的注釋符號是%村视,很可惜,他有沒有塊的注釋

八酒奶、包含文件

  • -include(FileSrc).
  • -include_lib(FileSrc).
    包含文件的擴展名是.hrl蚁孔,比如記錄的定義會放在hrl里方便統(tǒng)一rr

九、宏

1.定義方法

  • -define(Constant,Replacement).
  • -define(Func(Var1,...,VarN),replacement).
    當處理器遇到了類似?MacroName形式的表達式時惋嚎,會展開這個宏杠氢,并進行計算替換
-define(Func(a,b),{a,b}).
foo(A)->
    ?Func(1,1).%擴展之后就是{1,1}

還有一些預定義提供了當前模塊的信息

  • ?FILE展開當前的文件名
  • ?MODULE展開當前的模塊名
  • ?LINE展開當前的行號

2.宏控制流

  • -undef().取消宏定義
  • -ifdef().判斷是否定義過,true則往下執(zhí)行
  • -ifndef().false則往下執(zhí)行
  • -else.用于ifdef和ifndef后面
  • -endif.用于結束ifdef和ifndef
    舉例:
-ifdef(debug_flag).
-define(DEBUG(X),io:format("DEBUG ~p:~p ~p~n"瘸彤,[?MODULE,?LINE,X])).
-else.
-define(DEBUG(X),void).
-endif.

十一修然、進程字典

相當于erlang進程里的私有數(shù)據(jù)區(qū)域。
操作BIF:

  • put(Key,Value)->OldValue.鍵存在則更新值质况,不存在則創(chuàng)建關聯(lián)
  • get(Key)->Value.
  • get()->[{Key,Value}]返回整個字典
  • get_keys(Value)->[Key]返回值是Value的所有Key
  • erase(Key)->Value 刪除Key.
  • erase()->[{Key,Value}]刪除整個字典

十二愕宋、比較數(shù)據(jù)類型

這里側重講其中4個

  • ==
    這個比較要慎重使用,100次里有99次應該用的是=:=
    ==只有在比較浮點數(shù)和整數(shù)時可用结榄。
  • /=與=/=
    /=這個比較的意思是不等于中贝,而=/=的意思是不完全相同

PS:我再也不在內(nèi)網(wǎng)寫note了!被坑了

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市臼朗,隨后出現(xiàn)的幾起案子邻寿,更是在濱河造成了極大的恐慌蝎土,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绣否,死亡現(xiàn)場離奇詭異誊涯,居然都是意外死亡,警方通過查閱死者的電腦和手機蒜撮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門暴构,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人段磨,你說我怎么就攤上這事取逾。” “怎么了苹支?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵砾隅,是天一觀的道長。 經(jīng)常有香客問我债蜜,道長晴埂,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任策幼,我火速辦了婚禮邑时,結果婚禮上,老公的妹妹穿的比我還像新娘特姐。我一直安慰自己,他們只是感情好黍氮,可當我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布唐含。 她就那樣靜靜地躺著,像睡著了一般沫浆。 火紅的嫁衣襯著肌膚如雪捷枯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天专执,我揣著相機與錄音淮捆,去河邊找鬼。 笑死本股,一個胖子當著我的面吹牛攀痊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播拄显,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼苟径,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了躬审?” 一聲冷哼從身側響起棘街,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤蟆盐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后遭殉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體石挂,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年险污,在試婚紗的時候發(fā)現(xiàn)自己被綠了痹愚。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡罗心,死狀恐怖里伯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情渤闷,我是刑警寧澤疾瓮,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站飒箭,受9級特大地震影響狼电,放射性物質發(fā)生泄漏。R本人自食惡果不足惜弦蹂,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一肩碟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧凸椿,春花似錦削祈、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至优幸,卻和暖如春吨拍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背网杆。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工羹饰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人碳却。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓队秩,卻偏偏與公主長得像,于是被迫代替她去往敵國和親追城。 傳聞我的和親對象是個殘疾皇子刹碾,可洞房花燭夜當晚...
    茶點故事閱讀 44,678評論 2 354