深入理解 Go String 转 []byte 的容量分配机制
引言 在 Go 语言中,string 和 []byte 之间的转换是非常常见的操作。但你是否注意到,当将一个 3 字节的字符串转为 []byte 时,得到的切片容量却是 32?这背后隐藏着 Go 运行时的内存分配策略。本文将通过汇编代码分析,深入探究这个有趣的现象,帮助你理解 Go 在底层是如何处理类型转换和内存分配的。 核心问题: 为什么 []byte("abc") 的容量是 32 而不是 3? string 转 []byte 的底层实现是什么? Go 运行时如何进行内存分配? ...