Предоставляет ли Go такую ​​же функцию, как memmove в C ++? - PullRequest
0 голосов
/ 30 ноября 2018

Я искал в Интернете и обнаружил, что во время выполнения пакета есть эта функция, но она не экспортируется.

Есть ли в Golang что-то вроде memmove в C ++?

void * memmove ( void * destination, const void * source, size_t num );

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Наконец, я решил использовать 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))
}
0 голосов
/ 30 ноября 2018

Я считаю, копия - это то, что вы ищете.

src := []byte("some data")
dst := make([]byte, len(src))
copy(dst, src)

println(string(dst)) // prints 'some data'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...