mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-11-22 21:52:31 +03:00
[elixir/ru] Agents
This commit is contained in:
parent
13a89c7fd0
commit
04d2b5a2e9
@ -439,4 +439,21 @@ send pid, {:circle, 2}
|
||||
# Чтобы узнать текущий PID, воспользуйтесь встроенной функцией `self`
|
||||
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