Go中的字符串(string)和切片([]byte)的差异、对比、以及互相转换
string和[]byte的说明
string就是一系列字节,而[]byte也可以表达一系列字节,使用过程中,需要注意以下几点
1.string可以直接比较,而[]byte不可以,所以[]byte不可以当map的key值。
2.因为无法修改string中的某个字符,需要粒度小到操作一个字符时,用[]byte。
3.string值不可为nil,所以如果你想要通过返回nil表达额外的含义,就用[]byte。
4.[]byte切片这么灵活,想要用切片的特性就用[]byte。
5.需要大量字符串处理的时候用[]byte,性能好很多。
string和[]byte 相互转换
注:string 不能直接和byte数组转换;string可以和byte的切片转换
1.string 转为[]byte
var str string = "helloword"
var data []byte = []byte(str)
2.byte转为string
var data [10]byte
byte[0] = 'A'
byte[1] = 'B'
var str string = string(data[:])
网友评论