mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2025-04-27 07:33:57 +00:00
[elixir/ru] Agents
This commit is contained in:
parent
13a89c7fd0
commit
04d2b5a2e9
@ -439,4 +439,21 @@ send pid, {:circle, 2}
|
|||||||
# Чтобы узнать текущий PID, воспользуйтесь встроенной функцией `self`
|
# Чтобы узнать текущий PID, воспользуйтесь встроенной функцией `self`
|
||||||
self() #=> #PID<0.27.0>
|
self() #=> #PID<0.27.0>
|
||||||
|
|
||||||
|
## ---------------------------
|
||||||
|
## -- Агенты
|
||||||
|
## ---------------------------
|
||||||
|
|
||||||
|
# Агент — это процесс, который следит за некоторым изменяющимся значением.
|
||||||
|
|
||||||
|
# Создайте агента через `Agent.start_link`, передав ему функцию.
|
||||||
|
# Начальным состоянием агента будет значение, которое эта функция возвращает.
|
||||||
|
{ok, my_agent} = Agent.start_link(fn -> ["красный", "зелёный"] end)
|
||||||
|
|
||||||
|
# `Agent.get` принимает имя агента и анонимную функцию `fn`, которой будет
|
||||||
|
# передано текущее состояние агента. В результате вы получите то, что вернёт
|
||||||
|
# анонимная функция.
|
||||||
|
Agent.get(my_agent, fn colors -> colors end) #=> ["красный", "зелёный"]
|
||||||
|
|
||||||
|
# Похожим образом вы можете обновить состояние агента
|
||||||
|
Agent.update(my_agent, fn colors -> ["синий" | colors] end)
|
||||||
```
|
```
|
||||||
|
Loading…
Reference in New Issue
Block a user