Erlang—記錄和映射組

映射組:是鍵—值對的關聯性集合。

記錄:是元組的另一種表示形式,它的存儲與性能特性和元組一樣。
  
記錄的語法形式:
  
  -record(Name,{
          
          %% 以下兩個鍵帶有默認值
          key1 = Default1,
          key2 = Default2,
          %% 下面的key3就相當於 key3 = undefined
          key3,
          .....
         }).


 說明: Name:爲記錄的名稱,key1,key2爲記錄的各個字段必須爲原子。


        記錄的定義可以保存在Erlang源代碼文件裏,也可以由擴展名爲.hrl的文件保存,然後包含在Erlang源代碼的源文件中。
        
 注意: 文件包含是唯一能確保多個Erlang模塊共享相同記錄的定義方式。


 記錄操作語法:
  
     -record(todo,{status = remainder,who = joe,text}).

     創建一個todo新記錄:#todo{key1 = val1,key2 = val2,key3 = val3,...}
   
     X1#todo{status = done} 創建一個X1的副本,並修改字段status的值爲done,這樣做生成的是X1的一個副本,原始對象沒有改變。

    提取記錄中的值:#todo{who = W,text = Txt} = X2.

                    如果只想獲取記錄中單個字段的值可以使用"點語法"來提取該字段值:X2#todo.text.




映射組:映射組的語法與記錄的語法相似,不同之處在於,映射組省略了記錄名,並且鍵—值分隔符是 =>或:=。
   
        查詢映射組中某個鍵的值是一種高效率的操作。
  
        映射組有着明確的順序。
 
 映射組編寫語法:
      
            #{key1 op val1,key2 op val2, key3 op val3, ...}.
  
          op:爲=>或:=


   注意:表達式 K => V 有兩種用途:一種是將K的值更新爲V,另一種是給映射組添加一個全新的K-V對,這個操作總是成功的。


         表達式 K := V 的作用是將現有的值更新問新值V。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章