Notifier_C.AutoRemoveEvent = function(widget, messageId, callback)
if messageId == nil or widget == nil or callback == nil then
return
end
local objectEvents = Notifier_C.eventsMap[messageId]
if objectEvents == nil then
objectEvents = {}
Notifier_C.eventsMap[messageId] = objectEvents
end
if Notifier_C.eventIdsMap[messageId] == nil then
Notifier_C.eventIdsMap[messageId] = messageId
end
objectEvents[#objectEvents + 1] = {widget, callback}
local objectfuncs = Notifier_C.objectFuncMap[widget]
if objectfuncs == nil then
objectfuncs = {}
Notifier_C.objectFuncMap[widget] = objectfuncs
end
objectfuncs[callback] = callback
--Notifier_C.Dump()
end发布于 2022-01-03 08:31:03
local objectEvents = Notifier_C.eventsMap[messageId]
if objectEvents == nil then
objectEvents = {}
Notifier_C.eventsMap[messageId] = objectEvents
end这只是检查Notifier_C.eventsMap[messageId] exists.If,而不是分配空表。
因此,首先,他们创建了一个指向Notifier_C.eventsMap[messageId]的本地引用Notifier_C.eventsMap[messageId]。这主要是因为您可以使用更短的objectEvents来提高代码的可读性。
然后检查这个值是否为零值。如果是这样的话,您可以用一个空表替换它。和后来一样,它将是一个表。
因此,空表是Notifier_C.eventsMap[messageId]的默认值
https://stackoverflow.com/questions/70562850
复制相似问题