参考答案
结论: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'合法。