Знайомство з Erlang [23]

пишемо прості макроси
продовження попереднього поста про макроси в erlang

-define(PREFIX, "s1_").

test() ->
  A = ?PREFIX"table1",
  io:format("~p~n", [A]),

перетвориться на

test() ->
  A = "s1_table1",
  io:format("~p~n", [A]),

варіант з дужками перетвориться на те ж саме

-define(PREFIX(S), "s1_" ++ S).

test() ->
  A = ?PREFIX("table1"),
  io:format("~p~n", [A]),

підставляємо числову константу

-define(SETTING1(A), A * 100).

B = ?SETTING1(5),
io:format("~p~n", [B]),
B = 500,
io:format("~p~n", [B]),

підставляємо текст

-define(SETTING2, <<"test">>).

C = <<"777",?SETTING2/binary>>,
io:format("~p~n", [C]),
C = <<"777test">>,
io:format("~p~n", [C]),

підставляємо кирилицю

-define(SETTING2, <<"тест"/utf8>>).

C = <<"777",?SETTING2/binary>>,
io:format("~p~n", [C]),
C = <<55,55,55,209,130,208,181,209,129,209,130>>,
io:format("~p~n", [C]),

Працює! :)

Продовження

Посилання

https://erlang.org/doc/reference_manual/macros.html
https://medium.com/pragmatic-programmers/macros-c4993f699158
https://erlang.org/doc/getting_started/record_macros.html
http://tryerl.seriyps.ru/