当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Elixir Registry.keys用法及代码示例


Elixir语言中 Registry.keys 相关用法介绍如下。

用法:

keys(registry, pid)
(从 1.4.0 开始)
@spec keys(registry(), pid()) :: [key()]

返回 registry 中给定 pid 的已知键,无特定顺序。

如果注册表是唯一的,则键是唯一的。否则,如果进程多次在同一个键下注册,它们可能包含重复项。如果进程已死或此注册表中没有键,则该列表将为空。

例子

在唯一注册表下注册不允许多个条目:

iex> Registry.start_link(keys: :unique, name: Registry.UniqueKeysTest)
iex> Registry.keys(Registry.UniqueKeysTest, self())
[]
iex> {:ok, _} = Registry.register(Registry.UniqueKeysTest, "hello", :world)
iex> Registry.register(Registry.UniqueKeysTest, "hello", :later) # registry is :unique
{:error, {:already_registered, self()}}
iex> Registry.keys(Registry.UniqueKeysTest, self())
["hello"]

但是,对于重复的注册表,这是可能的:

iex> Registry.start_link(keys: :duplicate, name: Registry.DuplicateKeysTest)
iex> Registry.keys(Registry.DuplicateKeysTest, self())
[]
iex> {:ok, _} = Registry.register(Registry.DuplicateKeysTest, "hello", :world)
iex> {:ok, _} = Registry.register(Registry.DuplicateKeysTest, "hello", :world)
iex> Registry.keys(Registry.DuplicateKeysTest, self())
["hello", "hello"]

相关用法


注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Registry.keys(registry, pid)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。