登录
首页 >  Golang >  Go问答

格式字符串中没有占位符

来源:stackoverflow

时间:2024-04-02 21:57:41 402浏览 收藏

学习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.

今天关于《格式字符串中没有占位符》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>