专业的编程技术博客社区

网站首页 > 博客文章 正文

go语言string和「」byte相互转换的小技巧

baijin 2024-08-15 17:08:22 博客文章 7 ℃ 0 评论

go语言中,经常会碰到string和byte之间的转换,如果用强制类型转化,可能会涉及到内容拷贝以及背后的gc消耗。这里介绍个小技巧,直接上代码:

func String2Bytes(s string) []byte {

x := (*[2]uintptr)(unsafe.Pointer(&s))

h := [3]uintptr{x[0], x[1], x[1]}

return *(*[]byte)(unsafe.Pointer(&h))

}


func Bytes2String(b []byte) string { return *(*string)(unsafe.Pointer(&b))}

曾经碰到在调试的时候,程序会报错,但是执行起来,应该没有问题。
如有错误,欢迎指正。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表