当您使用来打印值时
fmt.Println(),将使用默认格式。引用以下文件的doc
fmt:
%v的默认格式为:
bool: %tint, int8 etc.: %duint, uint8 etc.: %d, %#x if printed with %#vfloat32, complex64, etc: %gstring: %schan: %ppointer: %p对于复合对象,将使用以下规则递归地打印元素,其布局如下:
struct: {field0 field1 ...}array, slice: [elem0 elem1 ...]maps: map[key1:value1 key2:value2 ...]pointer to above: &{}, &[], &map[]
结构值的地址是最后一行,因此将其视为特殊字符并因此使用
&{}语法进行打印。
如果要打印其地址,请不要使用默认格式,而要使用格式字符串,并使用
%p动词指定您要的地址(指针):
fmt.Printf("%pn", &r)
这将输出(在Go Playground上尝试):
0x414020
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)