mattn/go-mruby - GitHubMatzさんにヒントも貰いながら、さっき出来ました。
go-mruby make interface to embed mruby into go.
https://github.com/mattn/go-mruby
メソッドは
Run
と Eval
があり、mrubyの評価値を取得する事が出来ます。Go言語から渡した引数が ARGV になります。なので mruby 上では String とは限りません。
package main
import "github.com/mattn/go-mruby"
func main() {
mrb := mruby.New()
defer mrb.Close()
println(mrb.Eval(`"hello " + ARGV[0]`, "mruby").(string))
for _, i := range mrb.Eval(`ARGV.map {|x| x + 1}`, 1, 2, 3).([]interface{}) {
println(i.(int32)) // 2 3 4
}
}
良かったら遊んでみて下さい。