面试真题

Go · 简单 · 金山

String和byte切片的区别

简单 Go 🎤 金山
参考答案
结论:Go中string是不可变字节序列,byte切片是可变字节数组。核心区别:1.可变性:string底层结构含指针和长度,内容只读,修改编译报错;[]byte可修改元素如b[0]='x';2.内存:string赋值或拼接常产生拷贝,底层数组在只读段;byte切片指向底层数组,append可能扩容拷贝;3.比较:string支持==比较内容,byte切片需用bytes.Equal;4.转换:[]byte(s)和string(b)均拷贝数据,大量转换注意性能。示例:s:="ab"; s[0]='c'非法;b:=[]byte(s); b[0]='c'合法。
题目整理自公开面经,答案由校招宝自研生成,仅供参考