使用io_lib时候要注意参数,尤其是封装json串的时候,否则可能导致封装错误
看shell中的使用结果就知道,我在使用mochijson2 封装时候刚开始导致前端不能解析
[img]http://dl2.iteye.com/upload/attachment/0091/1568/2395e341-0920-3c77-9497-b16859858693.jpg[/img]
网上看到这样一段解释
io:format(Format, Args) uses io_lib:format(Format, Args) to create the [size=large][/size]
data that is written to stdout, so there should be absolutely no
difference in the result. Apart from that io_lib:format/2 returns a deep
string, and io:format/2 just does a side effect.
io:put_chars(io_lib:format(Format, Args)) would be exactly equivalent to
io:format(Format, Args).
The feature in io_lib:format/2's return value is that the string need
not be flattened if it is supposed to be sent to e.g io:put_chars/1,
file:write/2 or erlang:port_command/2. It is a perfectly valid IO-list
and it is wasting time to flatten it if it is not needed.
[url]http://erlang.org/pipermail/erlang-questions/2003-February/007683.html[/url]
看shell中的使用结果就知道,我在使用mochijson2 封装时候刚开始导致前端不能解析
[img]http://dl2.iteye.com/upload/attachment/0091/1568/2395e341-0920-3c77-9497-b16859858693.jpg[/img]
网上看到这样一段解释
io:format(Format, Args) uses io_lib:format(Format, Args) to create the [size=large][/size]
data that is written to stdout, so there should be absolutely no
difference in the result. Apart from that io_lib:format/2 returns a deep
string, and io:format/2 just does a side effect.
io:put_chars(io_lib:format(Format, Args)) would be exactly equivalent to
io:format(Format, Args).
The feature in io_lib:format/2's return value is that the string need
not be flattened if it is supposed to be sent to e.g io:put_chars/1,
file:write/2 or erlang:port_command/2. It is a perfectly valid IO-list
and it is wasting time to flatten it if it is not needed.
[url]http://erlang.org/pipermail/erlang-questions/2003-February/007683.html[/url]