ets: update

This commit is contained in:
Rico Sta. Cruz 2017-08-29 17:01:28 +08:00
parent 38bbb94f7c
commit 2a35329c95
No known key found for this signature in database
GPG Key ID: CAAD38AE2962619A
1 changed files with 15 additions and 5 deletions

20
ets.md
View File

@ -1,33 +1,42 @@
--- ---
title: Erlang ETS title: Erlang ETS
category: Elixir category: Elixir
layout: 2017/sheet
--- ---
## ETS
### Usage
```elixir ```elixir
iex> table = :ets.new(:my_table, []) iex> table = :ets.new(:my_table, [])
8211 8211
```
```elixir
iex> :ets.insert(table, {:fruit, "Apple"}) iex> :ets.insert(table, {:fruit, "Apple"})
iex> :ets.lookup(table, :fruit) iex> :ets.lookup(table, :fruit)
[{:fruit, "Apple"}] [{:fruit, "Apple"}]
```
```elixir
iex> :ets.delete(table) iex> :ets.delete(table)
iex> :ets.delete_all_objects(table) iex> :ets.delete_all_objects(table)
``` ```
### Flags ### Flags
``` ```elixir
iex> table = :ets.new(:my_table, [:set, :protected]) iex> table = :ets.new(:my_table, [:set, :protected])
``` ```
{: .-setup}
- `:set` - no duplicate keys (or: `:ordered_set`, `:bag`, `:duplicate_bag`) | `:set` | no duplicate keys (or: `:ordered_set`, `:bag`, `:duplicate_bag`) |
- `:protected` - only this process can use it (or: `:public`, `:private`) | `:protected` | only this process can use it (or: `:public`, `:private`) |
### Other functions ### Ordered sets
```elixir ```elixir
# Ordered sets
:ets.first(table) :ets.first(table)
:ets.last(table) :ets.last(table)
:ets.next(table, key) :ets.next(table, key)
@ -35,6 +44,7 @@ iex> table = :ets.new(:my_table, [:set, :protected])
``` ```
## References ## References
{: .-one-column}
* <http://erlang.org/doc/man/ets.html> * <http://erlang.org/doc/man/ets.html>
* <http://learnyousomeerlang.com/ets> * <http://learnyousomeerlang.com/ets>