Знайомство з 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/