Как использовать и реализовать пустой интерфейс golang {} в C-программировании - PullRequest
0 голосов
/ 24 октября 2018

string_operation.go (функция golang)

//export AddString
func AddString(str string, v interface{}) bool {
        somestrings = append(somestrings, str);
        xyz.Compile(str, v)
        fmt.Println("Added!!\n");
    }
    return true;
}

//export SearchString
func SearchString(str string) (v interface{}, ok bool) {
    v, ok = xyz.Match(str);
    if ok == true {
        fmt.Println("Found!!");
    } else {
        fmt.Println("Not found!!");
    }
    return
}

Над файлом golang при экспорте для использования в коде C

string_operation.h (экспортированный файл заголовка)

typedef struct { const char *p; GoInt n; } GoString;
typedef struct { void *t; void *v; } GoInterface;
typedef struct { void *data; GoInt len; GoInt cap; } GoSlice;
/* Return type for SearchStringValue */
struct SearchString_return {
    GoInterface r0; /* v */
    GoUint8 r1; /* ok */
};

extern struct SearchString_return SearchStringValue(GoString p0);
extern GoUint8 AddString(GoString p0, GoInterface p1);

Теперь вопрос заключается в том, как реализовать пустой интерфейс {} в коде C?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...