可以在Go中嵌入一种语言吗?举例说明嵌入式语言如何访问Go的变量。我需要它来在我的应用程序中创建插件。
首先,我将解释cgo。 Go提供API以将值导出为C语言。
例如,您可以将字符串导出为char*
,如下所示。
package main
/*
#include <stdio.h>
static void myputs(char* s) {
puts(s);
}
*/
import "C"
func main() {
s := "hello world"
C.myputs(C.CString(s))
}
所以你需要编写函数来访问C库。但是有一些软件包可以使用脚本语言。看到:
https://github.com/mattn/go-mruby
https://github.com/mattn/go-v8
或者,如果您不想使用C语言。你可以使用像otto这样的原生语言
是的,我在这里找到了这个清单:https://github.com/golang/go/wiki/Projects#virtual-machines-and-languages
LispEx - Go中的ECMAScript 5.1(+)实现。
我刚刚发现这个goja所以认为分享给我这样的人寻找一个人会很好。