当我运行这段代码时package mainimport ("fmt")func main() { i := 5 fmt.Println("Hello, playground %d",i)}(游乐场链接)我收到以下警告:prog.go:5: Println call has possible formatting directive %dGo vet exited.这样做的正确方法是什么?
3 回答
回首忆惘然
TA贡献1847条经验 获得超11个赞
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)
慕神8447489
TA贡献1780条经验 获得超1个赞
该警告告诉您%d
在调用Println
. 这是一个警告,因为Println
不支持格式化指令。这些指令由格式化函数Printf
和Sprintf
. 这在fmt
包文档中有详尽的解释。
正如您在运行代码时可以清楚地看到的那样,输出是
Hello, playground %d 5
因为Println
正如它的文档所说的那样——它打印它的参数后跟一个换行符。将其更改为Printf
,这可能是您想要的,而您得到的是:
Hello, playground 5
这大概是你想要的。
守着星空守着你
TA贡献1799条经验 获得超8个赞
package main
import ("fmt")
func main() {
i := 5
fmt.Println("Hello, playground %d",i)
}
===================================================
package main
import ("fmt")
func main() {
i := 5
fmt.Printf("Hello, playground %d",i)
}
- 3 回答
- 0 关注
- 224 浏览
添加回答
举报
0/150
提交
取消