YaegiGo 語言解釋器
Yaegi 是一個優(yōu)雅的 Go 語言解釋器,可以執(zhí)行 Go 腳本和插件。
特性
- 完整支持 Go 語言規(guī)范
- 用 Go 編寫,只使用標(biāo)準(zhǔn)庫
- 簡單的解釋器 API:
New(),Eval(),Use() - 只要能運(yùn)行 Go 的地方就可以運(yùn)行 Yaegi
- 所有 Go & 運(yùn)行時資源都可以在腳本中訪問
- 安全: 默認(rèn)不使用和輸出
unsafe和syscall包 - 支持 Go 1.11 和 Go 1.12
示例代碼:
package main
import (
"github.com/containous/yaegi/interp"
"github.com/containous/yaegi/stdlib"
)
func main() {
i := interp.New(interp.Options{})
i.Use(stdlib.Symbols)
_, err := i.Eval(`import "fmt"`)
if err != nil {
panic(err)
}
_, err = i.Eval(`fmt.Println("Hello Yaegi")`)
if err != nil {
panic(err)
}
}
評論
圖片
表情
