11]
def call_some_bar, do: @some_bar
end
defmodule Baz.Foomanager do
defmacro __before_compile___(env) do
value = Module.get_attribute(env.module, :some_bar)
Module.put_attribute(env.module, :some_bar, [9 | value])
end
end
iex> Foo.call_some_bar
#=> [10, 11]
Есть ли решение, которое будет изменять значение аттрибута в функциях?
def call_some_bar должно быть внутри макроса
Ну потому что ты сперва модифицируешь атрибут, а потом его пересоздаешь
Обсуждают сегодня