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

格式字符串中没有占位符

格式字符串中没有占位符

Go
四季花海 2023-07-26 16:32:22
这个问题是关于在 Go 中格式化字符串时的最佳实践。每当我像这样使用打印库时:log.Printf("Greeting:",resp.GetMessage())我从 IDE (Goland) 收到一条警告:No placeholders in format string这意味着什么?正确的印刷品应该是什么样子?
查看完整描述

1 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

log.Printf()需要一个格式字符串作为其第一个参数:

func Printf(format string, v ...interface{})

格式字符串是一个字符串,您可以在其中使用带有修饰符的动词来布置您希望结果字符串的外观。没有任何动词的格式字符串可能是一个错误(表明您可能忘记了其中的某些内容,或者如果它确实不需要动词,则不应使用需要Pritnf()格式字符串的格式)。

例如,这是一个格式字符串:

"Greeting: %s"

这是它的使用方式:

log.Printf("Greeting: %s", resp.GetMessage())

这是一个非常简单的示例,不保证格式化输出。如果您没有格式字符串,请使用log.Print()log.Println()代替(它们不需要格式字符串):

log.Println("Greeting:", resp.GetMessage())

Printf()当您需要更复杂的格式,而不仅仅是记录 2 个字符串(连接)时,该变体会很方便。

例如:

log.Printf("Hi, my name is %s, and I'm %d years old.", "Bob", 22)

输出将是(在Go Playground上尝试):

2009/11/10 23:00:00 Hi, my name is Bob, and I'm 22 years old.


查看完整回答
反对 回复 2023-07-26
  • 1 回答
  • 0 关注
  • 139 浏览
慕课专栏
更多

添加回答

举报

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