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]


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow