为了账号安全,请及时绑定邮箱和手机立即绑定

调用有可能的格式化指令

调用有可能的格式化指令

Go
慕的地6264312 2023-05-22 17:13:43
当我运行这段代码时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)


查看完整回答
反对 回复 2023-05-22
?
慕神8447489

TA贡献1780条经验 获得超1个赞

该警告告诉您%d在调用Println. 这是一个警告,因为Println 不支持格式化指令。这些指令由格式化函数PrintfSprintf. 这在fmt包文档中有详尽的解释。

正如您在运行代码时可以清楚地看到的那样,输出是

Hello, playground %d 5

因为Println正如它的文档所说的那样——它打印它的参数后跟一个换行符。将其更改为Printf,这可能是您想要的,而您得到的是:

Hello, playground 5

这大概是你想要的。


查看完整回答
反对 回复 2023-05-22
?
守着星空守着你

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)

}


查看完整回答
反对 回复 2023-05-22
  • 3 回答
  • 0 关注
  • 224 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信