目的:理解Golang*string和stringGolang之间的区别
试图
func passArguments() {
username := flag.String("user", "root", "Username for this server")
flag.Parse()
fmt.Printf("Your username is %q.", *username)
fmt.Printf("Your username is %q.", username)
}
结果是:
Your username is "root".Your username is %!q(*string=0xc820072200)
但是当 *string 被分配给一个字符串时:
bla:=*username
fmt.Printf("Your username is %q.", bla)
它能够再次打印字符串:
Your username is "root".Your username is %!q(*string=0xc8200781f0).Your username is "root".
问题
为什么是 *string != string,例如 display of: "root"
vs. %!q(*string=0xc8200781f0)
?
在哪些其他情况下应该使用 *string 而不是字符串,为什么?
为什么可以将 *string 分配给字符串变量,而字符串的显示却不同,例如 display of: "root"
vs. %!q(*string=0xc8200781f0)
?
慕娘9325324
相关分类