如何在 erlang 中格式化包含整数的平面字符串?

2024-03-13

在erlang中,我想格式化一个包含整数的字符串,并且我希望结果被展平。但我明白了:

io_lib:format("sdfsdf ~B", [12312]).                 
[115,100,102,115,100,102,32,"12312"]

我可以使用下面的代码获得所需的结果,但它确实不优雅。

lists:flatten(io_lib:format("sdfsdf ~B", [12312])).
"sdfsdf 12312"

是否有更好的格式化字符串,其中包含整数,以便它们是扁平的?理想情况下,只使用一种功能?


您可以使用以下方法展平列表lists:flatten/1正如您在示例中所做的那样。

如果您可以接受二进制文件,list_to_binary/1是相当有效的:

1> list_to_binary(io_lib:format("sdfsdf ~B", [12312])).
<<"sdfsdf 12312">>

然而,首先要问一下为什么你需要一个简单的列表。如果只是化妆品的话就不需要了。io:format/1,2,3和大多数其他端口功能(gen_tcp等)接受所谓的深度 IO 列表(带有字符和二进制的嵌套列表):

2> io:format([115,100,102,115,100,102,32,"12312"]).
sdfsdf 12312ok
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 erlang 中格式化包含整数的平面字符串? 的相关文章

随机推荐