Я пытаюсь вернуть [] строку из golang в список в моей программе python. Я успешно могу преобразовать go срез в массив c из некоторых ссылок из stackoverflow.
Reference
Но я не уверен, как преобразовать обратно в список python.
Любые указатели приветствуются.
Спасибо.
Вот мои примеры кода.
// example.go
package main
import "C"
import (
"unsafe"
)
//export Example
func Example() **C.char {
// len of slice may be dynamic
data := []string {
"A",
"B",
"C",
}
cArray := C.malloc(C.size_t(len(data)) * C.size_t(unsafe.Sizeof(uintptr(0))))
a := (*[1<<30 - 1]*C.char)(cArray)
for i, value := range data {
a[i] = C.CString(value)
}
return (**C.char)(cArray)
}
func main() {}
# example.py
from ctypes import *
lib = cdll.LoadLibrary('./example.so')
lib.Example.argtypes = None
lib.Example.restype = POINTER(c_char_p)
ret_value = lib.Example()
mylist = [value for value in ret_value.contents]
print(mylist)