目录
基本认知
在字符串和字节切片(数组)之间进行转换时,会得到一个全新的切片,其中包含与字符串相同的字节,反之亦然。
- 转换不会修改数据
- 唯一的区别是字符串是不可变的,而字节片可以修改
如果需要操纵字符串的 rune ,则可能需要将字符串转换为 rune 切片,
更多细节请看这篇文章 《golang runes 字符串 互转》 https://blog.csdn.net/whatday/article/details/109775355
将字符串转为字节切片
将字符串转换为字节切片时,会得到一个新的切片,其中包含与字符串相同的字节。
b := []byte("ABC€")
fmt.Println(b) // [65 66 67 226 130 172]
复制代码
请注意,字符 € 是使用 3 个字节的 UTF-8 编码的。有关 Unicode 码位的 UTF-8 编码的更多信息,请参阅关于 rune 的这篇文章。
将字节切片转为字符串
当您将字节的一部分转换为字符串时,您将获得一个新的字符串,其中包含与该片段相同的字节。
s := string([]byte{65, 66, 67, 226, 130, 172})
fmt.Println(s) // ABC€
复制代码
性能
这些转换将创建一个新的切片或字符串,因此时间复杂度与处理的字节数成正比。