Erlang Language
Formatera strängar
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]