當前位置: 首頁>>代碼示例>>Golang>>正文


Golang State.SetField方法代碼示例

本文整理匯總了Golang中github.com/kdar/morphgen/golua/lua.State.SetField方法的典型用法代碼示例。如果您正苦於以下問題:Golang State.SetField方法的具體用法?Golang State.SetField怎麽用?Golang State.SetField使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在github.com/kdar/morphgen/golua/lua.State的用法示例。


在下文中一共展示了State.SetField方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: register

func register(L *lua.State, table string, values Map, convertFun bool) {
	pop := true
	if table == "*" {
		pop = false
	} else if len(table) > 0 {
		L.GetGlobal(table)
		if L.IsNil(-1) {
			L.NewTable()
			L.SetGlobal(table)
			L.GetGlobal(table)
		}
	} else {
		L.GetGlobal("_G")
	}
	for name, val := range values {
		t := reflect.TypeOf(val)
		if t.Kind() == reflect.Func {
			if convertFun {
				L.PushGoFunction(GoLuaFunc(L, val))
			} else {
				lf := val.(func(*lua.State) int)
				L.PushGoFunction(lf)
			}
		} else {
			GoToLua(L, t, valueOf(val))
		}
		L.SetField(-2, name)
	}
	if pop {
		L.Pop(1)
	}
}
開發者ID:kdar,項目名稱:morphgen,代碼行數:32,代碼來源:luar.go

示例2: initializeProxies

func initializeProxies(L *lua.State) {
	flagValue := func() {
		L.PushBoolean(true)
		L.SetField(-2, "luago.value")
		L.Pop(1)
	}
	L.NewMetaTable(SLICE_META)
	L.SetMetaMethod("__index", slice__index)
	L.SetMetaMethod("__newindex", slice__newindex)
	L.SetMetaMethod("__len", slicemap__len)
	flagValue()
	L.NewMetaTable(MAP_META)
	L.SetMetaMethod("__index", map__index)
	L.SetMetaMethod("__newindex", map__newindex)
	L.SetMetaMethod("__len", slicemap__len)
	flagValue()
	L.NewMetaTable(STRUCT_META)
	L.SetMetaMethod("__index", struct__index)
	L.SetMetaMethod("__newindex", struct__newindex)
	flagValue()
	L.NewMetaTable(INTERFACE_META)
	L.SetMetaMethod("__index", interface__index)
	flagValue()
	L.NewMetaTable(CHANNEL_META)
	//~ RegisterFunctions(L,"*",FMap {
	//~ "Send":channel_send,
	//~ "Recv":channel_recv,
	//~ })
	L.NewTable()
	L.PushGoFunction(channel_send)
	L.SetField(-2, "Send")
	L.PushGoFunction(channel_recv)
	L.SetField(-2, "Recv")
	L.SetField(-2, "__index")
	flagValue()
}
開發者ID:kdar,項目名稱:morphgen,代碼行數:36,代碼來源:luar.go

示例3: addCallback

// Add a callback to the lua state.
func addCallback(L *lua.State, name string, args []interface{}) {
	L.GetGlobal("callbacks")
	luar.GoToLua(L, reflect.TypeOf(args), reflect.ValueOf(args))
	L.SetField(-2, name)
}
開發者ID:kdar,項目名稱:morphgen,代碼行數:6,代碼來源:ui.go


注:本文中的github.com/kdar/morphgen/golua/lua.State.SetField方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。