Erlang Central

# Testing Hash for Key

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

## Problem

You need to know wheter a hash (Dictionary) has a particular key, regardless of whatever value may be associated with a key.

## Solution

The predicate dict:is_key/2 returns true if the key is present in the dictionary, and false otherwise.

```1> Dict = dict:from_list([{1,"foo"}, {2,"bar"}, {3, "baz"}]).
{dict,3,
16,
16,
8,
80,
48,
{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},
{{[],
[[3,98,97,122]],
[],
[],
[],
[],
[[2,98,97,114]],
[],
[],
[],
[],
[[1,102,111,111]],
[],
[],
[],
[]}}}
2> dict:is_key(1, Dict).
true
3> dict:is_key(4, Dict).
false
```

## Discussion

ets tables have a similar predicate, called ets:member/2, that retursn true if the key is a member of the table, and false otherwise.

```4> MyETS = ets:new('Cookbook Test', []).
15
5> ets:insert(MyETS, {1, "foo"}).
true
6> ets:insert(MyETS, {2, "bar"}).
true
7> ets:insert(MyETS, {3, "baz"}).
true
8> ets:member(MyETS, 2).
true
9> ets:member(MyETS, 3).
true
10> ets:member(MyETS, 4).
false
```

###### Getting Started
Getting Started with Erlang
Categories
Main page
Recent changes
Random page
Help
View source
Editing help