преобразовать строку [] из списка Go в python - PullRequest
1 голос
/ 17 апреля 2020

Я пытаюсь вернуть [] строку из 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...