元數屬性
塊表示式
動態**載入
函式引用
包含檔案
列表操作
巨集模式的匹配操作符
整數程序字典
下劃線變數
定義: 函式的引數個數
兩個名稱相同,元數不同的函式是完全不同的函式。
語法: -atomtag(…)
注意: -record(…) , -include(…) 不算模組屬性
分兩類:
預定義型
使用者定義型
使用: 語法要求單個表示式,但是想使用多個。比如列表推導 [ e || … ] e是單個表示式。
格式:begin
expr1
…,exprx
enda模組執行b模組,如果b在執行過程中重新編譯或改動了,a會在下一次呼叫時,呼叫最新的版本。
如果a模組被改變或重新編譯了,那麼erlang虛擬機器中有兩個a的不同版本同時執行:當前版和舊版。如果繼續改變 a,那麼當前版變為舊版,重新編譯後的移為當前版。
目的:想要引用當前或外部模組裡定義的某個函式。
格式:fun localfunc/arity 引用當前模組中的函式。
fun mod:remotefunc/arity 引用外部模組中的函式。
包含的檔案必須是 .hrl
-include(filename).
-include_lib(name).
++ : [1,2,3]++[4,5,6] 為 [1,2,3,4,5,6]
– :例子:
[a,b,c,1,d,1] – [1] 為 [a,b,c,d,1]
[a,b,c,1,d,1] – [1,1] 為 [a,b,c,d]
注意,如果符號x在b中值出現了k次,那麼a值會移除k個x。
格式:-define (constant,replacement). 定義值。
-define(func(var1,var2,…,var),replacement). 定義操作。
使用: ?constant , ?func( vaf1,var2,…var )
預定義的巨集
巨集控制流
例1: func1( [=z|t)
例2: func1( [tag, =za, b} =z2 |t])
傳統寫法: 1, 123,41
k進製整數: k # digits , 如2#123
$寫法: $a是97簡寫,$1是49簡寫
每個erlang程序都有乙個程序字典的私有資料儲存區域,是一種鍵值對儲存。
put(key,value) -> oldvalue
get(key) -> value
get() -> 返回整個字典的資料
get_keys(value) -> [key] 返回值為value的所有鍵
erase(key) -> value 返回key的關聯值,並且刪除,沒有返回undefined
erase(key) -> 返回所有值,並刪除。
作用1: 命名乙個我們不打算使用的變數,例如open(file,_0), open(file,_mode)
作用2: 用於除錯,編譯器不會報警告
一些知識點
字串拼接 1.a join b a為元素之間的分隔符,b為待分割的序列 可用於輸出時的資料處理,元素間有空格,末尾沒有 2 s s s str1,str2,str3 前半部分為字串,後半部分為索引。用於引入,s是物件 3.format str1,str2,str3 與f 括號裡為已有變數 關於for...
一些知識點
1.vector是在堆上還是棧上?在堆上.2.我們發現指標有一些 似是而非 的特徵 1 指標消亡了,並不表示它所指的記憶體會被自動釋放。比如函式中的指標是區域性變數,如果它指向了堆上,而自己出了函式後消亡了,但它所指向的記憶體還是存在的,導致了記憶體洩漏.2 記憶體被釋放了,並不表示指標會消亡或者成...
一些知識點
1 sln 解決方案檔案 csproj 專案檔案 cs 原始檔 解決方案包含多個專案,每個專案都是乙個程式。config 配置檔案 3 const int a 1 const 定義乙個量為常量,運算中用到當常量使用,不可以再重新賦值。4 型別轉換。1 隱式轉換。從值型別轉換成引用型別。從引用型別轉換...