Szukaj…


Składnia

  • io: format (FormatString, Args)% zapisu na standardowe wyjście
  • io: format (standard_error, FormatString, Args)% zapisu do standardowego błędu
  • io: format (F, FormatString, Args)% zapisu do otwartego pliku
  • io_lib: format (FormatString, Args)% zwraca iolist

Typowe sekwencje kontrolne w ciągach formatu

Chociaż istnieje wiele różnych sekwencji kontrolnych dla io:format i io_lib:format , przez większość czasu będziesz używać tylko trzech różnych: ~s , ~p i ~w .

~ s

~s jest dla ciągów znaków .

Drukuje łańcuchy, pliki binarne i atomy. (Cokolwiek innego spowoduje błąd badarg .) Nie cytuje ani nie ucieka; po prostu wypisuje sam ciąg:

%% 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 służy do pisania ze standardową składnią .

Może wydrukować dowolny termin Erlang. Dane wyjściowe można przeanalizować w celu zwrócenia oryginalnego terminu Erlang, chyba że zawiera on terminy, które nie mają możliwej do przetworzenia reprezentacji na piśmie, tj. Pidy, porty i referencje. Nie wstawia żadnych znaków nowej linii ani wcięć, a ciągi znaków są zawsze interpretowane jako listy:

> io:format("~w\n", ["abc"]).
[97,98,99]

~ p

~p służy do ładnego drukowania .

Może wydrukować dowolny termin Erlang. Dane wyjściowe różnią się od ~w w następujący sposób:

  • Nowe linie są wstawiane, jeśli linia byłaby zbyt długa.
  • Po wstawieniu nowego wiersza wcięcie następnego wiersza jest zgodne z poprzednim terminem na tym samym poziomie.
  • Jeśli lista liczb całkowitych wygląda jak ciąg do wydrukowania, jest interpretowana jako jedna.
> 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}

Jeśli nie chcesz, aby listy liczb całkowitych były drukowane jako ciągi, możesz użyć sekwencji ~lp (wstaw małą literę L przed 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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow