Suche…


Syntax

  • io: format (FormatString, Args)% Schreiben in die Standardausgabe
  • io: format (standard_error, FormatString, Args)% Schreiben in Standardfehler
  • io: format (F, FormatString, Args)% schreiben, um die Datei zu öffnen
  • io_lib: format (FormatString, Args)% gibt eine Iolist zurück

Übliche Steuerungssequenzen in Formatzeichenfolgen

Während es für io:format und io_lib:format viele verschiedene Steuersequenzen gibt , werden meistens nur drei verschiedene verwendet: ~s , ~p und ~w .

~ s

Das ~s ist für Streicher .

Es druckt Strings, Binaries und Atome. (Alles andere verursacht einen badarg Fehler.) Es zitiert oder badarg nichts. Es wird nur die Zeichenfolge selbst gedruckt:

%% 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

Das ~w ist für das Schreiben mit Standardsyntax .

Es kann jeden Erlang-Begriff drucken. Die Ausgabe kann analysiert werden, um den ursprünglichen Erlang-Ausdruck zurückzugeben, es sei denn, er enthält Begriffe, die keine durch Parsung geschriebenen Repräsentation enthalten, dh Pids, Ports und Referenzen. Es werden keine Zeilenumbrüche oder Einrückungen eingefügt, und Zeichenfolgen werden immer als Listen interpretiert:

> io:format("~w\n", ["abc"]).
[97,98,99]

~ p

Das ~p ist für hübsches Drucken .

Es kann jeden Erlang-Begriff drucken. Die Ausgabe unterscheidet sich von ~w auf folgende Weise:

  • Zeilenumbrüche werden eingefügt, wenn die Zeile sonst zu lang wäre.
  • Wenn neue Zeilen eingefügt werden, wird die nächste Zeile eingerückt, um sich mit einem vorherigen Begriff auf derselben Ebene auszurichten.
  • Wenn eine Liste ganzer Zahlen wie eine druckbare Zeichenfolge aussieht, wird sie als eine einzige interpretiert.
> 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}

Wenn Sie nicht möchten, dass Listen mit Ganzzahlen als Strings gedruckt werden, können Sie die ~lp Sequenz verwenden (fügen Sie vor p einen Kleinbuchstaben L ein):

> 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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow