Я искал в Интернете и обнаружил, что во время выполнения пакета есть эта функция, но она не экспортируется.
Есть ли в Golang что-то вроде memmove в C ++?
void * memmove ( void * destination, const void * source, size_t num );
Наконец, я решил использовать Cgo.Он может потерять преимущества безопасности типов при вызове C. Но я не могу найти какое-либо собственное решение кода go.
//#include <string.h> import "C" import "unsafe" func Memmove(src, dest unsafe.Pointer, length int) { C.memmove(dest, src, C.size_t(length)) }
Я считаю, копия - это то, что вы ищете.
src := []byte("some data") dst := make([]byte, len(src)) copy(dst, src) println(string(dst)) // prints 'some data'