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]


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow