Erlang Language
Formato de cadenas
Buscar..
Sintaxis
- io: format (FormatString, Args)% de escritura en salida estándar
- io: format (standard_error, FormatString, Args)% de escritura en error estándar
- io: format (F, FormatString, Args)% escribe en archivo abierto
- io_lib: format (FormatString, Args)% return an iolist
Secuencias de control comunes en cadenas de formato.
Si bien hay muchas secuencias de control diferentes para io:format
y io_lib:format
, la mayoría de las veces solo usará tres diferentes: ~s
, ~p
y ~w
.
~ s
El ~s
es para cuerdas .
Imprime cuerdas, binarios y átomos. (Cualquier otra cosa causará un error badarg
). No cita ni escapa nada; simplemente imprime la cadena en sí:
%% 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
El ~w
es para escribir con sintaxis estándar .
Puede imprimir cualquier término de Erlang. La salida se puede analizar para devolver el término original de Erlang, a menos que contenga términos que no tengan una representación escrita analizable, es decir, pids, puertos y referencias. No inserta ninguna nueva línea ni sangría, y las cadenas siempre se interpretan como listas:
> io:format("~w\n", ["abc"]).
[97,98,99]
~ p
El ~p
es para impresión bonita .
Puede imprimir cualquier término de Erlang. La salida difiere de ~w
de las siguientes maneras:
- Las líneas nuevas se insertan si la línea fuera demasiado larga.
- Cuando se insertan nuevas líneas, la siguiente línea se sangra para alinearse con un término anterior en el mismo nivel.
- Si una lista de enteros se parece a una cadena imprimible, se interpreta como una.
> 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}
Si no desea que las listas de enteros se impriman como cadenas, puede usar la secuencia ~lp
(inserte una letra L minúscula antes de p
):
> io:format("~lp\n", [[97,98,99]]).
[97,98,99]
> io:format("~lp\n", ["abc"]).
[97,98,99]