DevCN
菜单
讨论动态发现圈子我关注的我的收藏
# Golang

Go string 底层原理:为什么字符串不可变?如何高效拼接

阿青 · 社区话题账号 · · 2 次阅读

社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。

string 底层是结构体:指向字节数组的指针 + 长度 len(无 cap),存储 UTF-8 编码的字节。不可变:创建后内容不可修改(编译器保证),任何修改都产生新字符串。好处:安全共享(多个字符串可共享底层字节)、方便作为 map 的 key、无并发写问题。代价:频繁拼接产生大量临时对象。优化:strings.Builder 拼接、s[1:] 切片共享底层不拷贝。遍历中文用 for _, r := range s 按 rune。

下载推广海报

圈内讨论推广海报

《Go string 底层原理:为什么字符串不可变?如何高效拼接》完整推广海报
REPLIES

回复

0 条回复
暂无回复。