有没有一种简单的方法可以在Go中格式化字符串而不打印字符串?

我能做到:

bar := "bar"
fmt.Printf("foo: %s", bar)

但是我希望返回格式化的字符串,而不是打印出来,这样我就可以进一步操作它.

我也可以做一些类似的事情:

s := "foo: " + bar

但是,当格式字符串很复杂时,这就很难读取,当一个或多个部分不是字符串并且必须首先转换时,这就很麻烦了,比如

i := 25
s := "foo: " + strconv.Itoa(i)

有没有更简单的方法来做这件事?

推荐答案

Sprintf就是你要找的.

Example

fmt.Sprintf("foo: %s", bar)

你也可以在《围棋之旅》中看到它在Errors example强中的使用

return fmt.Sprintf("at %v, %s", e.When, e.What)

Go相关问答推荐

Pulumi-S3-当策略依赖于访问点时,如何将AccesspintPolicy附加到访问点

Go GORM创建表,但不创建列

编辑时保留YAML文件中的单引号

未对GoFr中的所有请求进行跟踪

如果values.yaml文件中不存在某个属性,如何返回默认的FALSE?

如何使用 Go 连接到非默认 firestore 数据库?

go mod tidy会自动升级go.mod中的go版本吗?

将这两个函数合二为一的惯用方法

Golang:访问any类型泛型上的字段

Golang Gorm Fiber - 如何将定义为别名的名称发送到索引模板?

Go安装成功但没有输出简单的Hello World

启动套接字服务器会干扰 gRPC/http 客户端服务器通信 Golang

为什么 net/http 不遵守超过 30 秒的超时持续时间?

GoLang: gocui 边框 colored颜色

通过环境变量配置 OTLP 导出器

具有两个或多个模型的 GORM 查询

通过 golang 中的 gremlin-go 库嵌入 gremlin 服务器

Golang计算 struct struct 中的字段数

即使一个测试用例失败,如何运行所有测试用例

Go:用于 XML 解码的嵌套 struct 中的提升字段