モノとしてはGopherLuaのテーブルをGoの構造体にマップしてくれます。といっても、内部動作的にはHashicorpの mapstructure を使っているだけだったりします。一度GopherLuaのテーブルを map[string]interface{} に変換してあげて、あとはmapstructureにおまかせ。 ただ、一般的なLuaの命名規則とGoの命名規則が違うので名前を変換する関数が指定できます。デフォルトでは snake_case を CamelCase に変換します。 1type Role struct { 2 Name string 3} 4 5type Person struct { 6 Name string 7 Age int 8 WorkPlace string 9 Role []*Role 10} 11 12L := lua.NewState() 13if