Erlang Language
Formato stringhe
Ricerca…
Sintassi
- io: format (FormatString, Args)% scrive su standard output
- io: format (standard_error, FormatString, Args)% scrive su errore standard
- io: format (F, FormatString, Args)% write per aprire il file
- io_lib: format (FormatString, Args)% restituisce un iolist
Sequenze di controllo comuni nelle stringhe di formato
Mentre ci sono molte diverse sequenze di controllo per io:format
e io_lib:format
, la maggior parte delle volte ne userai solo tre differenti: ~s
, ~p
e ~w
.
~ s
Il ~s
è per archi .
Stampa stringhe, binari e atomi. (Qualsiasi altra cosa causerà un errore di badarg
). Non cita né sfugge a nulla; stampa solo la stringa stessa:
%% 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
Il ~w
è per la scrittura con sintassi standard .
Può stampare qualsiasi termine di Erlang. L'output può essere analizzato per restituire il termine originale di Erlang, a meno che non contenga termini che non hanno una rappresentazione scritta parsabile, cioè pid, porte e riferimenti. Non inserisce alcuna nuova riga o rientro e le stringhe sono sempre interpretate come liste:
> io:format("~w\n", ["abc"]).
[97,98,99]
~ p
Il ~p
è per la stampa carina .
Può stampare qualsiasi termine di Erlang. L'output differisce da ~w
nei seguenti modi:
- I newline sono inseriti se la linea sarebbe altrimenti troppo lunga.
- Quando vengono inserite nuove righe, la riga successiva viene rientrata per allineare con un termine precedente sullo stesso livello.
- Se un elenco di numeri interi assomiglia a una stringa stampabile, viene interpretato come uno.
> 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}
Se non vuoi che liste di numeri interi vengano stampate come stringhe, puoi usare la sequenza ~lp
(inserisci una lettera minuscola L prima di p
):
> io:format("~lp\n", [[97,98,99]]).
[97,98,99]
> io:format("~lp\n", ["abc"]).
[97,98,99]