當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。