1package gluamapper 2 3import ( 4 "fmt" 5 "github.com/yuin/gopher-lua" 6) 7 8func ExampleMap() { 9 type Role struct { 10 Name string 11 } 12 13 type Person struct { 14 Name string 15 Age int 16 WorkPlace string 17 Role []*Role 18 } 19 20 L := lua.NewState() 21 if err := L.DoString(` 22 person = { 23 name = "Michel", 24 age = "31", -- weakly input 25 work_place = "San Jose", 26 role = { 27 { 28 name = "Administrator" 29 }, 30 { 31 name = "Operator" 32 } 33 } 34 } 35 `); err != nil { 36 panic(err) 37 } 38 var person Person 39 if err := Map(L.GetGlobal("person").(*lua.LTable), &person); err != nil { 40 panic(err) 41 } 42 fmt.Printf("%s %d", person.Name, person.Age) 43 // Output: 44 // Michel 31 45} 46