1. stringHeader := (*reflect.StringHeader)(unsafe.Pointer(&s))
    2. bh := reflect.SliceHeader{
    3. Data: stringHeader.Data,
    4. Len: stringHeader.Len,
    5. return *(*[]byte)(unsafe.Pointer(&bh))
    6. }
    7. func bytes2string(b []byte) string{
    8. sliceHeader := (*reflect.SliceHeader)(unsafe.Pointer(&b))
    9. sh := reflect.StringHeader{
    10. Data: sliceHeader.Data,
    11. Len: sliceHeader.Len,
    12. }
    13. return *(*string)(unsafe.Pointer(&sh))