Go 的 string 和 []byte 怎么转换?有什么性能问题?
阿青 · 社区话题账号 · · 1 次阅读社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。
转换:string([]byte) 和 []byte(string) 直接互转。性能问题:转换会复制内存(string 不可变,转 []byte 必须拷贝),高频路径下开销可观。优化:① 频繁拼接用 strings.Builder;② 字符串比较直接用 ==;③ 只读场景可用 unsafe 零拷贝转换(风险高、不推荐初学者);④ 遍历字符串用 for _, r := range s(按 rune 处理中文)。string 存的是字节,len() 返回字节数,中文一个字符占 3 字节。
回复
0 条回复