筆記 erlang ets筆記

2021-09-01 18:49:30 字數 1802 閱讀 6169

額 電子書是買了 然後再買了本erlang程式設計 

再看ets和dets那部分 就權當做個筆記啦....

erlang程式設計 寫道

ets和dets基本上是在做同一件事:它們提供大型的「鍵—值」搜尋表。所不同的是,ets駐留在記憶體,而dets駐留在磁碟。

表的型別有四個 分別是:set、ordered set、bag和duplicate bag

set系列兩個 set是保證主鍵唯一 ordered set會根據主鍵排序(set就是插入順序啦) 這裡需要注意的是 insert操作如果遇到主鍵重複了 並不會報錯 而是覆蓋

bag系列 bag是主鍵可以重複但是元組要不同 duplicate bag就是可以多個重複的元組了。

基本操作1:

-module(ets_test).

-export([start/0]).

start() ->

lists:foreach(fun create/1,[set,ordered_set,bag,duplicate_bag])

.create(mode) ->

tableid=ets:new(test,[mode]),

ets:insert(tableid, ),

ets:insert(tableid, ),

ets:insert(tableid, ),

ets:insert(tableid, ),

list = ets:tab2list(tableid),

io:format("~-13w => ~p~n" , [mode, list]),

ets:delete(tableid).

結果如下:

70> c(ets_test).

71> ets_test:start().

set => [,]

ordered_set => [,]

bag => [,,]

duplicate_bag => [,,,]

ok

set如果主鍵重複是覆蓋很容易就可以看出來。(以上set中已經被覆蓋了)

建立引數:

erlang程式設計 寫道

呼叫ets:new可以建立ets表。建立表的這個程序就是表的所有者。表建立之後,它的一系列屬性設定不能再更改。如果所有者程序死掉,或者呼叫ets:delete時,就會自動釋放表的記憶體空間。

ets:new的引數是下面這樣的。

@spec ets:new(name, [opt]) -> tableid

name是乙個原子,[opt]是乙個選項列表,取值範圍如下。

set | ordered_set | bag | duplicate_bag。

private。建立私有表,只有所有者程序可以讀寫這個表。

public。建立公開表,所有知道這個表標識的程序都可以對這個表進行讀寫操作。

protected。建立受保護的表,所有知道這個表標識的程序都可以對這個表進行讀操作,但只有這個表的所有者程序可以對這個表進行寫操作。

named_table。命名表,如果存在這個選項,則可以在後續操作中使用name來操作表。

。使用k作為鍵的位置,通常情況下使用的是第乙個位置。可能只有一種情況才需要用到這個選項,那就是當我們需要儲存erlang的記錄時(記錄實際上是變相的元組),它的第一元素包含的是這個記錄的名字(對每個記錄來說,它的值都是一樣的)。

說明 開啟乙個ets表時不帶任何選項,等同於使用了這樣的預設選項[set,protected, ]。

書上的內容也就這麼多了 關於如何查詢 利用匹配刪除什麼的都沒講 有空做個示例吧 先寫到這了。

筆記 plt matplotlib筆記

eg import matplotlib.pyplot as plt fig plt.figure num display figsize 8,6 dpi 80,facecolor blue 生成名為 display 寬為8英吋,高為6英吋,每英吋為80畫素,背景色為藍色的影象。plt.show 參...

ios筆記 ARC筆記

arc知識介紹 1 概念 arc的全稱是 automatic reference counting 自動引用計數 是自ios5 之後增加的新特性,編譯器會自動在合適的地方插入適當的retain release autorelease 語句,會自動生成記憶體管理的 不用程式設計師手動編寫。2 如果是手...

筆記 docker入門筆記

安裝 sudo apt get remove docker docker engine docker ce docker.io sudo apt get update sudo apt get install y apt transport https ca certificates curl so...