[]byte) string {
return *(*string)(unsafe.Pointer(&b))
}
func StringToBytes(s string) []byte {
return *(*[]byte)(unsafe.Pointer(&s))
}
цель: гонять формат между редис строками и протобаф объектами без аллокаций, то есть известно что слайс меняться не будет
если изолировано и вы уверены что ничего не поломаете то да, но крайне осторожно
а где конвертация между reflect.SliceHeader и reflect.StringHeader? sliceheader больше на Cap int
На недавнем GolangLive было выступление Валялкина, как раз про такие преобразования советую посмотреть чтобы узнать что вас может ожидать
Обсуждают сегодня