io:format/2
按照指定的格式把数据写入到输出端上
用法:
format(Format, Data) -> ok
内部实现:
-spec format(Format, Data) -> 'ok' when Format :: format(), Data :: [term()]. format(Format, Args) -> format(default_output(), Format, Args).
把参数 Data 里的每一项根据 Format 的输出格式写入到默认输出端。
其中参数 Format 的写法形式是 "~F.P.PadModC"
- F表示输出长度和格式
- P表示输出精度
- Pad表示输出填充字符
- Mod控制类型的修饰
- C表示控制类型
比如常见的格式参数有:
~c 表示只接受 ASCII 码所表示的数字,例如下面 10.5c 表示打印 5 次 a,长度是 10 的字符串(长度不足时空格表示):
io:format("|~10.5c|", [$a]).
~f 表示浮点数输出,默认保留 6 为小数,下面的 15.2f 表示数字总共占 15 位,小数保留 2 位(保留时四舍五入)
Pi = math:pi(), io:format("Pi is ~15.2f", [Pi]).
~s 表示按字符串形式输出:
io:format("abcdefg~s", [hijklmn]).
Chinese = unicode:characters_to_list("中文测试"), io:format("~ts~n", [Chinese]).
~w 表示输出一个 Erlang term
io:format("List is ~w", [[97]]).
~p 与 ~w 类似,不过 ~p 的输出是有格式的,默认一行的显示的最大长度为80,则多行时会自动换行
L = lists:seq(1, 100), io:format("L is ~p", [L]).
~n 表示换行符
io:format("newline1~n newline2~n", []).