0
点赞
收藏
分享

微信扫一扫

【Go】实现字符切片零拷贝开销转为字符串

窗外路过了谁 2024-08-21 阅读 41
golang
package main

import (
	"fmt"
	"unsafe"
)

func main() {
	bytes := []byte("hello world")
	s := *(*string)(unsafe.Pointer(&bytes))
	fmt.Println(s)
	bytes[0] = 'H'
	fmt.Println(s)
}

在这里插入图片描述
slice的底层结构是底层数组、len字段、cap字段。string的底层结构是底层数组和len字段。通过unsafe操作将slice的底层数组直接转为string的底层数组。二者共用同一个底层数组。

举报

相关推荐

0 条评论