调用有可能的格式化指令

当我运行这段代码时


package main

import ("fmt")

func main() {

    i := 5

    fmt.Println("Hello, playground %d",i)

}

游乐场链接


我收到以下警告:


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

Go vet exited.

这样做的正确方法是什么?


慕的地6264312
浏览 225回答 3
3回答

回首忆惘然

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

该警告告诉您%d在调用Println. 这是一个警告,因为Println 不支持格式化指令。这些指令由格式化函数Printf和Sprintf. 这在fmt包文档中有详尽的解释。正如您在运行代码时可以清楚地看到的那样,输出是Hello, playground %d 5因为Println正如它的文档所说的那样——它打印它的参数后跟一个换行符。将其更改为Printf,这可能是您想要的,而您得到的是:Hello, playground 5这大概是你想要的。

守着星空守着你

package mainimport ("fmt")func main() {    i := 5    fmt.Println("Hello, playground %d",i)}===================================================package mainimport ("fmt")func main() {    i := 5    fmt.Printf("Hello, playground %d",i)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go