考虑,
package main
import "fmt"
func main() {
name := "johnny"
fmt.Println("Hello world %s\n", name)
}
打印出来,
你好世界%s 约翰尼
为什么我得到 %s 而不是这个,
package main
import "fmt"
func main() {
name := "johnny"
fmt.Printf("Hello world %s\n", name)
}
哪个打印 Hello world johnny?
我试图从文档中找出答案,
如果格式(对于 Println 等隐式为 %v)对字符串有效(%s %q %v %x %X),则以下两条规则适用:
如果操作数实现了错误接口,则将调用 Error 方法将对象转换为字符串,然后根据动词(如果有)的要求对其进行格式化。
如果操作数实现方法 String() string,则将调用该方法将对象转换为字符串,然后将根据动词(如果有)的要求对其进行格式化。
但是我无法理解这是否影响了我的程序。
慕哥6287543
qq_花开花谢_0
相关分类