知识卡片
子串可能保留底层
内容
字符串切片得到子串时,内部可能仍指向原字节数组,导致大字符串被意外保留。发散:小片段引用大底层,是内存泄漏里很隐蔽的一类。
参考来源
- 位置:《Go语言入门到实战(共3册)》第30章《Go语言学习笔记:第5章 数据》(源文件:_epub-src/text/part0064.html)
- 结论依据:原文围绕“内部依旧指向原字节数组”给出定义、机制、流程、对比或限制条件,本卡片据此提炼可迁移的语言/工程结论,并补充了边界或实践启发。
- 原始内容:错误: cannot take the address of s[1] } 以切片语法(起始和结束索引号)返回子串时,其内部依旧指向原字节数组。 import ( "fmt" "reflect" "unsafe" ) func main() { s := "abcdefg" s1 := s[:3]……