登录
首页 >  Golang >  Go问答

[]byte(string) 有多贵?

来源:Golang技术栈

时间:2023-04-29 16:44:24 119浏览 收藏

本篇文章向大家介绍《[]byte(string) 有多贵?》,主要包括golang,具有一定的参考价值,需要的朋友可以参考一下。

问题内容

让我们转换string[]byte

func toBytes(s string) []byte {
  return []byte(s) // What happens here?
}

这种铸造手术有多贵?是否执行复制?据我在 Go 规范中看到的: 字符串表现得像字节切片但不可变 ,这至少应该涉及复制以确保后续切片操作不会修改我们的字符串s。反向对话会发生什么?对话是否[]byte string涉及编码/解码,例如 utf8 符文?

正确答案

[]byte(s)不是强制转换而是转换。一些转换与强制转换相同,例如uint(myIntvar),它只是重新解释到位的 。不幸的是,字符串到字节切片转换的情况并非如此。字节切片是可变的,字符串(准确地说是字符串值)不是。结果是正在制作的字符串的必要副本(内存分配+内容传输)。所以是的,在某些情况下它可能会很昂贵。

编辑:不执行编码转换。字符串(源)字节按原样复制到切片(目标)字节。

终于介绍完啦!小伙伴们,这篇关于《[]byte(string) 有多贵?》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>