如何在Erlang中返回格式化字符串?(附Go语言实现示例)
Erlang 实现类似 Go fmt.Sprintf 的字符串格式化
在 Erlang 中,你可以使用 io_lib:format/2 函数来实现和 Go 里 fmt.Sprintf 相同的字符串格式化功能。
基础示例
对应你给出的 Go 代码,Erlang 的实现如下:
% 直接生成格式化后的iolist Str = io_lib:format("~d is bigger than ~d", [6, 4]), % 转为扁平字符串列表(类似Go的string类型) FlatString = lists:flatten(Str), % 转为二进制字符串(Erlang中更常用的高效格式) BinaryString = list_to_binary(Str).
格式化占位符说明
Erlang 的格式化占位符和 Go 略有不同,常用的几个:
~d:十进制整数格式化,和 Go 的%d完全对应~p:美化打印 Erlang 术语(类似 Go 的%v)~w:无美化的术语打印~s:字符串/二进制格式化(对应 Go 的%s)
比如用字符串占位符的示例:
Greeting = io_lib:format("Hello, ~s!", ["Erlang"]), % 输出结果为 "Hello, Erlang!"
注意点
io_lib:format/2 默认返回的是 iolist(一种由列表、二进制组成的高效字符串结构),如果需要传统的字符串列表,用 lists:flatten/1 处理即可;如果业务中常用二进制,直接用 list_to_binary/1 转换更高效,无需先扁平化。
内容的提问来源于stack exchange,提问作者Aroka
相关产品推荐
相关产品推荐

