Возвращает уникальный идентификатор объекта: ресурса, виджета и т.д. Реализован для всех типов ResourceId и для WidgetSafe (базовый тип для widget-ов). Уникальный идентификатор объекта имеет тип light userdata. Гарантируется, что один и тот же объект всегда имеет один и тот же уникальный идентификатор.
Замечание: для одного и того же объекта его представления в виде (обычного) идентификатора - (full) userdata - могут отличаться, т.е. один и тот же объект может представляться различными идентификаторами (с точки зрения сравнения на равенство операторами Lua).
Замечание: уникальный идентификатор - light userdata - не может быть использован для непосредственного доступа к объекту через функции Lua API. Для этого необходимо использовать его (обычный) идентификатор - (full) userdata.
-- класс Метод имеется у пользовательских ресурсов и виджетов ResourceId. -- семантика function GetInstanceId( self ) -- входные параметры: self: WidgetSafe (not nil) или ResourceId (not nil) - объект одного из поддерживаемых типов -- возвращаемое значение: light userdata - уникальный идентификатор или nil в случае ошибки -- примеры: local isWidgetsEqual = widget1:GetInstanceId() == widget2:GetInstanceId() local isSpellsEqual = spellResourceId1:GetInstanceId() == spellResourceId2:GetInstanceId() local index = {} index[widget1:GetInstanceId()] = widget1 index[widget2:GetInstanceId()] = widget2 function GetWidgetById( instanceId ) return index[instanceId] end local isKnownWidget = GetWidgetById( widget:GetInstanceId() ) != nil