> Erlang中文手册 > next/2 返回表的下一个键

ets:next/2

返回表的下一个键

用法:

next(Tab, Key1) -> Key2 | `$end_of_table`

返回在表 Tab 里紧随键 Key1 的下一个键 Key2。如果是 ordered_set 类型的表,Erlang 项顺序的下一个键将会被返回;如果是其他类型的表,表内部顺序的下一个键将被返回。如果表里已没有下一个键,则返回'$end_of_table'。

可用 ets:first/1 获取表的第一个键。

对于类型是 set、bag 或 duplicate_bat 的表,如果有并发更新了表,遍历将失败,除非使用 ets:safe_fixtable/2 函数对表进行保护锁定。如果是 ordered_set 类型的表,该函数将返回下一个键,即使下一个键的数据不再存在。

TableId = ets:new(test_ets_new, [set, named_table]),
ets:insert(TableId, [{a, 1}, {b, 2}]),
Key1 = ets:first(TableId),
ets:next(TableId, Key1).
TableId = ets:new(test_ets_new, [set, named_table]),
ets:insert(TableId, [{a, 1}, {b, 2}]),
Key1 = ets:last(TableId),
Key2 = ets:next(TableId, Key1),
ets:next(TableId, Key2).