OSDN Git Service

Regular updates
[twpd/master.git] / ets.md
1 ---
2 title: Erlang ETS
3 category: Elixir
4 layout: 2017/sheet
5 weight: -1
6 ---
7
8 ## ETS
9
10 ### Usage
11
12 ```elixir
13 iex> table = :ets.new(:my_table, [])
14      8211
15 ```
16
17 ```elixir
18 iex> :ets.insert(table, {:fruit, "Apple"})
19 iex> :ets.lookup(table, :fruit)
20      [{:fruit, "Apple"}]
21 ```
22
23 ```elixir
24 iex> :ets.delete(table)
25 iex> :ets.delete_all_objects(table)
26 ```
27
28 ### Flags
29
30 ```elixir
31 iex> table = :ets.new(:my_table, [:set, :protected])
32 ```
33 {: .-setup}
34
35 | `:set` | no duplicate keys (or: `:ordered_set`, `:bag`, `:duplicate_bag`) |
36 | `:protected` | only this process can use it (or: `:public`, `:private`) |
37
38 ### Ordered sets
39
40 ```elixir
41 :ets.first(table)
42 :ets.last(table)
43 :ets.next(table, key)
44 :ets.prev(table, key)
45 ```
46
47 ## References
48 {: .-one-column}
49
50 * <http://erlang.org/doc/man/ets.html>
51 * <http://learnyousomeerlang.com/ets>