code

2017年1月22日 星期日

Erlang筆記7 - Records

Records


records和tuple同一掛的,沒什麼特別的。
records, tuple都是不能動態改變collection length的(不能新增或刪除item),而list, map可以,差別就在這。

通式如下:

宣告record definition,但是還沒實體化!


records有點像是ios plist,是可以存在一個.hrl file,這樣可以對不同的module都visible。
實體化的時候,如果跳過一個key沒給值的話,則erlang會給予一個definition中的default value。

實體化,語法上很怪,用#號表示instantiation:


第四行是指make a copy of X1 and update "status" field。

extraction:


或是用dot syntax:


總之是令人不習慣的語法,藍瘦香菇~~


pattern matching:

先貼上來,有用到再說。我發現我幾乎沒用過類似record的時候。



沒有留言:

張貼留言