当我运行这个代码时

package main
import ("fmt")
func main() {
    i := 5
    fmt.Println("Hello, playground %d",i)
}

(playground link)

我收到以下警告:

prog.go:5: Println call has possible formatting directive %d
Go vet exited.

做这件事的合适方式是什么?

推荐答案

fmt.Println不执行像%d这样的格式化操作.相反,它使用参数的默认格式,并在参数之间添加空格.

fmt.Println("Hello, playground",i)  // Hello, playground 5

如果需要printf样式格式,请使用fmt.Printf.

fmt.Printf("Hello, playground %d\n",i)

而且你也不需要对类型挑剔.%v个人一般都能算出来.

fmt.Printf("Hello, playground %v\n",i)

Go相关问答推荐

Golang socks 5代理,流量限制转发到下一个socks 5代理

如何存储来自异步Goroutine的返回值列表?

在Uber FX中实现后台进程正常关闭的正确方式是什么?

创建服务时云运行触发器执行失败

在GO中使用泛型类型 struct 实现接口方法

如何修复proxyconnect tcp:tls:第一条记录看起来不像tls握手

为什么要立即调用内联函数,而不仅仅是调用其包含的函数?

该文件位于模块.内,该模块不包含在您的工作区中

无法在go中为docker容器写入有效的挂载路径

使用goroutines在Golang中验证 struct

在golang二进制中嵌入SvelteKit

golang / urfave.cli:无法手动设置标志

如何将 DirName 和 serial 添加到 X509v3 Authority Key Identifier

一个Go module可以和之前的非module模块发布在同一个路径下吗?

GoReleaser 和 ssh-agent Github 操作:为什么无法读取用户名...终端提示已禁用?

当 git clone 工作时,Go mod tidy 在私有存储库上失败

GOENV 只能使用 OS 环境设置

Golang 有类似 C++ 的 decltype 的东西吗?

防止在 Go 公用文件夹中列出目录

如何将实际上是类型为 reflect.Int32 的类型切片的 interface{} 转换为 int32 的切片?