在 Erlang 中从列表生成字符串
我正在尝试根据列表生成格式化字符串:
[{"Max", 18}, {"Peter", 25}]
到字符串:
"(Name: Max, Age: 18), (Name: Peter, Age: 35)"
I'm trying to generate a formatted string based on a list:
[{"Max", 18}, {"Peter", 25}]
To a string:
"(Name: Max, Age: 18), (Name: Peter, Age: 35)"
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
第一步是创建一个可以将 {Name, Age} 元组转换为列表的函数:
下一部分只是将此函数应用于列表中的每个元素,然后将其连接在一起。
扁平化的原因是 io_lib 返回一个 iolist 而不是扁平列表。
The first step is to make a function that can convert your {Name, Age} tuple to a list:
The next part is simply to apply this function to each element in the list, and then join it together.
The reason for the flatten is that io_lib returns an iolist and not a flat list.
如果性能很重要,您可以使用此解决方案:
但请记住,它返回 io_list(),因此如果您想查看结果,请使用
lists:flatten/1
。这是如何在 Erlang 中编写非常高效的字符串操作的方法,但仅当性能远比可读性和可维护性重要时才使用它。If performance is important, you can use this solution:
But remember that it returns io_list() so if you want see result, use
lists:flatten/1
. It is way how to write very efficient string manipulations in Erlang but use it only if performance is far more important than readability and maintainability.一个简单但缓慢的方法:
A simple but slow way:
是 JSON 吗?
使用一些已经编写的模块,例如 mochiweb。
is it JSON?
use some already written modules in e.g mochiweb.