golang中string底层数据结构与上层数据结构的关系

打印 上一主题 下一主题

主题 1744|帖子 1744|积分 5232

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
golang的字符串范例有string,rune,和[]byte几种表示,string的底层是基于byte数组实现,由操作系统分配基本的byte范例一连地址即字节数组,string利用底层的字符串头来描述字符串的数据在物理层的存储数据的地址类似有切片头拿string举例 reflect.StringHeader结构体描述两部分的内容一是字符串所在的物理地址二是字节能转译字符的长度如字母编码会转为1字节为字符汉字编码值会辨认成utf8编码采取三字节编码成一个字符,并计算字符的长度,string的底层结构就是StringHeader,以是可以利用unsafe.Pointer就有相同结构的数据范例转换成底层范例,并利用它维护的地址来操作字符串的字节数组值,相反对地址解指针可以修改内容值但内存地址照旧不可变的对于string是只读存在。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

千千梦丶琪

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表