golang struct с C struct в CGO - PullRequest
       8

golang struct с C struct в CGO

0 голосов
/ 09 января 2019

Я буду использовать cgo, чтобы обернуть одну библиотеку c как библиотеку go для использования в проекте. Я прочитал документ, кажется, есть много правил при использовании cgo. Я не знаю, законно это или нет.

И LibCtx, и Client - это структура в C. Является ли это легальным способом поместить структуру C в структуру golang?

//DBClientLib.go

type DBClient struct {
    Libctx C.LibCtx
    LibClient C.Client
}

func (client DBClient) GetEntry(key string) interface{} {

    //...
}

1 Ответ

0 голосов
/ 09 января 2019

Да, это абсолютно законно. Проверьте этот короткий пример:

package main

/*
typedef struct Point {
    int x , y;
} Point;
*/
import "C"
import "fmt"

type CPoint struct {
    Point C.Point
}

func main() {
    point := CPoint{Point: C.Point{x: 1, y: 2}}
    fmt.Printf("%+v", point)
}

OUTPUT

{Point:{x:1 y:2}}
...