可以在Go中嵌入一种语言吗?我需要它在我的应用程序中创建插件。
kknvjkwl1#
我在虚拟机和语言上找到了这个列表。
更新:
更新2:
brjng4g32#
goja- ECMAScript 5.1(+)在Go中的实现。
w3nuxt5m3#
首先,我将解释cgo. Go提供API将值导出到C语言。http://golang.org/cmd/cgo/例如,您可以像下面这样将字符串导出为char*。
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这样的原生go语言。https://github.com/robertkrimen/ottohttps://github.com/mattn/anko
7jmck4yq4#
一个非常好用,但上面没有提到的:gopher-lua,Lua 5.1 VM:
gopher-lua
L := lua.NewState() defer L.Close() _ = L.DoString(`print("hello")`); _ = L.DoFile("hello.lua");
字符串
4条答案
按热度按时间kknvjkwl1#
我在虚拟机和语言上找到了这个列表。
更新:
更新2:
brjng4g32#
goja- ECMAScript 5.1(+)在Go中的实现。
w3nuxt5m3#
首先,我将解释cgo. Go提供API将值导出到C语言。
http://golang.org/cmd/cgo/
例如,您可以像下面这样将字符串导出为
char*
。字符串
所以你需要写函数来访问C库。但也有一些包使用脚本语言。请参阅:
https://github.com/mattn/go-mruby的
https://github.com/mattn/go-v8的
或者如果你不想使用C语言,你可以使用像otto这样的原生go语言。
https://github.com/robertkrimen/otto
https://github.com/mattn/anko
7jmck4yq4#
一个非常好用,但上面没有提到的:
gopher-lua
,Lua 5.1 VM:字符串