请考虑,
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方法,则调用该方法将对象转换为字符串,然后根据所需的动词(如果有)进行格式化。
但我不确定这是否会影响我的程序。
Println
根本不进行格式化。 - undefined