Erlang Language
Форматировать строки
Поиск…
Синтаксис
- io: format (FormatString, Args)% записать в стандартный вывод
- io: format (standard_error, FormatString, Args)% записать в стандартную ошибку
- io: format (F, FormatString, Args)% записать в открытый файл
- io_lib: format (FormatString, Args)% возвращает iolist
Общие управляющие последовательности в строках формата
Хотя существует множество различных управляющих последовательностей для io:format
и io_lib:format
, большую часть времени вы будете использовать только три разных: ~s
, ~p
и ~w
.
~ s
~s
для строк .
Он печатает строки, двоичные файлы и атомы. (Все остальное вызовет ошибку badarg
.) Он ничего не цитирует и не избегает; он просто печатает строку:
%% Printing a string:
> io:format("~s\n", ["hello world"]).
hello world
%% Printing a binary:
> io:format("~s\n", [<<"hello world">>]).
hello world
%% Printing an atom:
> io:format("~s\n", ['hello world']).
hello world
~ ш
~w
для написания со стандартным синтаксисом .
Он может печатать любой термин Эрланга. Вывод может быть проанализирован, чтобы вернуть исходный термин Эрланга, если в нем не содержались термины, которые не имеют синтаксического письменного представления, то есть pids, портов и ссылок. Он не вставляет новые строки или отступы, а строки всегда интерпретируются как списки:
> io:format("~w\n", ["abc"]).
[97,98,99]
~ р
~p
- для довольно-печатной .
Он может печатать любой термин Эрланга. Выход отличается от ~w
следующими способами:
- Новые строки вставляются, если линия в противном случае была бы слишком длинной.
- Когда новые строки вставлены, следующая строка имеет отступы, чтобы соответствовать предыдущему члену на том же уровне.
- Если список целых чисел выглядит как печатная строка, он интерпретируется как один.
> io:format("~p\n", [{this,is,a,tuple,with,many,elements,'and',a,list,'of',numbers,[97,98,99],that,'end',up,making,the,line,too,long}]).
{this,is,a,tuple,with,many,elements,'and',a,list,'of',numbers,"abc",that,
'end',up,making,the,line,too,long}
Если вы не хотите, чтобы списки целых чисел были напечатаны в виде строк, вы можете использовать последовательность ~lp
(вставить строчную букву L перед p
):
> io:format("~lp\n", [[97,98,99]]).
[97,98,99]
> io:format("~lp\n", ["abc"]).
[97,98,99]