当前位置: 首页 > news >正文

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

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


http://www.mrgr.cn/news/26131.html

相关文章:

  • JavaSE篇之抽象类接口
  • 【程序分享1】第一性原理计算 + 数据处理程序
  • oracle select字段有子查询的缺点与优化
  • 商业银行零售业务数智运营探索与应用
  • 5.8g微波雷达传感器:引领智能化时代,赋能多行业领域精准感知与节能应用
  • R数据对象快速保存与读取:qs包
  • Rust:深入浅出说一说 Error 类型
  • 速通GPT:Improving Language Understanding by Generative Pre-Training全文解读
  • 爱普生相机SD卡格式化后数据恢复指南
  • 5款免费版文章生成器,自动生成文章更省创作精力
  • 【文献分享】J. Phys. Chem. C:机器学习模型的结构嵌入方法加速堆叠二维材料的研究
  • Debian11之DolphinScheduler使用
  • 供应RTL8211FSI-VS-CG芯片
  • 2024.9.13 Python与图像处理新国大EE5731课程大作业,索贝尔算子计算边缘,高斯核模糊边缘,Haar小波计算边缘
  • sqlgun靶场训练
  • Linux入门攻坚——32、Mini Linux制作
  • BASM引领2024国家网络安全宣传周:智能守护,打造全方位业务与应用安全监测平台
  • 我们身边的数据:从体育到家务管理
  • uniapp与webview进行数据通信
  • 项目中使用简单的立体3D柱状图,不用引入外部组件纯css也能实现