格式化Erlang术语而不进行列表到字符串的转换

时间:2012-02-22 11:44:07

标签: erlang

如何在不检测可打印字符代码列表的情况下格式化Erlang术语?例如。而不是

1> io:format("foo=~p~n", [[50]]). 
foo="2"

我想获得foo=[50]

3 个答案:

答案 0 :(得分:4)

如果使用“~w”而不是“~p”,它应该给你列表而不将其改成字符串:

io:format("foo=~w~n", [[50]]). 

在这里查看文件:

http://erldocs.com/R14B/stdlib/io.html?i=3&search=io:#format/1

答案 1 :(得分:4)

As of R16B,您可以使用l(小写字母)修饰符来~p格式指令禁用字符串检测:

1> io:format("~p~n", [[10]]).
"\n"
ok
2> io:format("~lp~n", [[10]]).
[10]
ok

这意味着您仍然可以获得~p提供的换行符和深度限制,而不是~w

答案 2 :(得分:1)

~w中使用标记io:format

1> io:format("foo=~w~n", [[50]]). 
foo=[50]
相关问题