go语言中的string和[]byte

相同点

都是对字符串的操做web

区别

string类型的修改是修改指针指向的位置svg

var  s string
s = "a"
s = "b"

其实是新建了两块内存空间,改变string值的时候就是改变指针位置ui

[]byte是直接在内存空间上改变值spa

string转换成[]byte类型

[]byte(string)指针

何时用string何时用[]byte

  • string能够直接比较,[]byte不行,[]byte不能当map的key值
  • 须要操做的粒度为字符串的某个字符时候,用[]byte
  • string不可为nil值
  • []byte的切片特性更加灵活
  • 若是有大量的字符串操做,就用[]byte