golang 字节切片 数组 字符串 互转

目录

基本认知

将字符串转为字节切片

将字节切片转为字符串

性能


基本认知

在字符串和字节切片(数组)之间进行转换时,会得到一个全新的切片,其中包含与字符串相同的字节,反之亦然。

  • 转换不会修改数据
  • 唯一的区别是字符串是不可变的,而字节片可以修改

如果需要操纵字符串的 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€
复制代码

性能

这些转换将创建一个新的切片或字符串,因此时间复杂度与处理的字节数成正比。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值