Я новичок в Elixir, читал книгу и делал несколько примеров. Вот фрагмент кода, который заставляет меня задать вопрос здесь:
defmodule Sequence.Server do
use GenServer
def init(initial_number)do
{:ok,initial_number}
end
def handle_call(:next_number, _from, current_number)do
{:reply, current_number,current_number+1}
end
end
Как я знаю, функция init вызывается, когда сервер инициализируется, и мы определяем некоторый параметр - который будет исходным состоянием сервера. Меня смущает то, что current_number и initial_number связаны друг с другом, я имею в виду, что нигде в коде мы не говорим что-то подобное
current_number = initial_number
Потому что, когда я вызываю GenServer.call(some_process_id, :next_number)
, он начинается с 100, например, если параметр start_link равен 100. Как Elixir понимает, что он должен начинаться с 100, когда у нас нет какого-либо сопоставления между начальным состоянием и current_number
параметры