Поиск…


Синтаксис

  • 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]


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow