类型

lua-users home
wiki

围绕 typeof() 运算符的概念进行尝试。

当使用 module() 函数创建模块时,它会将模块名称的值添加为 metatable._NAME。此函数利用了这种默认行为。注意:这并不适用于 C 扩展,除非作者专门添加了该值。

function typeof(var)
    local _type = type(var);
    if(_type ~= "table" and _type ~= "userdata") then
        return _type;
    end
    local _meta = getmetatable(var);
    if(_meta ~= nil and _meta._NAME ~= nil) then
        return _meta._NAME;
    else
        return _type;
    end
end
    

最近更改 · 偏好设置
编辑 · 历史记录
最后编辑于 2006 年 3 月 1 日下午 11:47 GMT (差异)