Sök…


Syntax

  • io: format (FormatString, Args)% skriver till standardutdata
  • io: format (standard_error, FormatString, Args)% skriva till standardfel
  • io: format (F, FormatString, Args)% skriva för att öppna filen
  • io_lib: format (FormatString, Args)% returnerar en iolist

Vanliga kontrollsekvenser i formatsträngar

Det finns många olika kontrollsekvenser för io:format och io_lib:format , io_lib:format för det mesta använder du bara tre olika: ~s , ~p och ~w .

~ s

~s är för strängar .

Den skriver ut strängar, binärer och atomer. (Allt annat orsakar ett badarg fel.) Det citerar inte eller undgår något; den skriver bara ut själva strängen:

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

~w är för att skriva med standardsyntax .

Det kan skriva ut valfri Erlang-term. Utgången kan tolkas för att returnera den ursprungliga Erlang-termen, såvida den inte innehöll termer som inte har en parsbar skriftlig representation, dvs. pids, portar och referenser. Det sätter inte in några nya linjer eller intryck, och strängar tolkas alltid som listor:

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

~ p

~p är för vackert tryck .

Det kan skriva ut valfri Erlang-term. Utgången skiljer sig från ~w på följande sätt:

  • Nya linjer infogas om linjen annars skulle vara för lång.
  • När nya linjer sätts in indikeras nästa rad i linje med en tidigare term på samma nivå.
  • Om en lista med heltal ser ut som en utskrivbar sträng tolkas den som en.
> 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}

Om du inte vill att listor med heltal ska skrivas ut som strängar kan du använda ~lp sekvensen (infoga en liten bokstav L före 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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow