我是Go语言的初学者,字符串有问题:
字符串定义为:
type stringStruct struct{
str unsafe.Pointer
len int }
我使用:
str := "abc"
fmt.Printf("%p\n", &str)
打印结构地址,我想知道如何打印结构地址 字符串的基础数组。
我的英语不好,也不知道我说的不够清楚。
非常感谢您的帮助。
答案 0 :(得分:2)
使用unsafe包将字符串convert转换为reflect.StringHeader。标头的“数据”字段是后备字节数组的地址。
func stringAddr(s string) uintptr {
return (*reflect.StringHeader)(unsafe.Pointer(&s)).Data
}
使用如下功能:
str := "abc"
fmt.Printf("%08x\n", stringAddr(str))