直接[]byte{string}会内存拷贝,所以使用如下:

func StringToBytes(s string) []byte {
 return *(*[]byte)(unsafe.Pointer(
  &struct {
   string
   Cap int
  }{s, len(s)},
 ))
}

func BytesToString(b []byte) string {
 return *(*string)(unsafe.Pointer(&b))
}