Zoeken…


Syntaxis

  • io: format (FormatString, Args)% schrijven naar standaarduitvoer
  • io: format (standard_error, FormatString, Args)% schrijven naar standaardfout
  • io: format (F, FormatString, Args)% schrijven om bestand te openen
  • io_lib: format (FormatString, Args)% retourneert een iolist

Algemene besturingsreeksen in opmaakreeksen

Hoewel er veel verschillende besturingsreeksen zijn voor io:format en io_lib:format , gebruik je meestal slechts drie verschillende: ~s , ~p en ~w .

~ s

De ~s is voor strings .

Het drukt strings, binaries en atomen af. (Al het andere zal een badarg fout veroorzaken.) Het citeert of ontsnapt niets; het drukt alleen de string zelf af:

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

De ~w is voor schrijven met standaardsyntaxis .

Het kan elke Erlang-term afdrukken. De uitvoer kan worden ontleed om de oorspronkelijke Erlang-term te retourneren, tenzij deze termen bevat die geen ontleedbare schriftelijke weergave hebben, zoals pids, poorten en verwijzingen. Er worden geen nieuwe regels of inspringingen ingevoegd en tekenreeksen worden altijd geïnterpreteerd als lijsten:

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

~ p

De ~p is voor mooi afdrukken .

Het kan elke Erlang-term afdrukken. De uitvoer verschilt op de volgende manieren van ~w :

  • Nieuwe regels worden ingevoegd als de regel anders te lang zou zijn.
  • Wanneer nieuwe regels worden ingevoegd, wordt de volgende regel ingesprongen om uit te lijnen met een vorige term op hetzelfde niveau.
  • Als een lijst met gehele getallen op een afdrukbare tekenreeks lijkt, wordt deze als één geïnterpreteerd.
> 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}

Als u niet wilt dat lijsten met gehele getallen als tekenreeksen worden afgedrukt, kunt u de volgorde ~lp (plaats een kleine letter L voor 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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow