学习Golang要努力,但是不要急!今天的这篇文章《格式字符串中没有占位符》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!
问题内容这个问题是关于在 Go 中格式化字符串时的最佳实践。
每当我像这样使用打印库时:
log.Printf("问候语:",resp.GetMessage())
我从 IDE (Goland) 收到一条警告:
格式字符串
中没有占位符
这是什么意思?正确的打印是什么样子的?
解决方案
log.Printf()
需要格式字符串作为其第一个参数:
func printf(format string, v ...interface{})
格式字符串是一个字符串,您可以在其中使用动词和修饰符来布置您希望结果字符串的外观。没有任何动词的格式字符串可能是一个错误(表明您可能忘记了其中的某些内容,或者如果它确实不需要动词,则不应使用需要格式字符串的 pritnf()
)。您可以在 fmt
包的文档中阅读有关格式字符串及其 go 语法的更多信息。
例如,这是一个格式字符串:
"greeting: %s"
这就是它的使用方式:
log.printf("greeting: %s", resp.getmessage())
这是一个非常简单的示例,不保证格式化输出。如果您没有格式字符串,请改用 log.Print()
或 log.Println()
(它们不需要格式字符串):
log.println("greeting:", resp.getmessage())
当您需要更复杂的格式,而不仅仅是记录 2 个字符串(连接)时,printf()
变体会很方便。
例如:
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.
今天关于《格式字符串中没有占位符》的内容介绍就到此结束,如果有什么疑问或者建议,可以在编程网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!