LUA教程集合和包-45

Lua中表示这个集合有一个简单有效的方法,将所有集合中的元素作为下标存放在一个table里,下面不需要查找table,只需要测试看对于给定的元素,表的对应下标的元素值是否为nil。比如:

reserved = {
    ["while"] = true,    ["end"] = true,
    ["function"] = true, ["local"] = true,
} 
 
for w in allwords() do
    if reserved[w] then
    -- `w' is a reserved word
    ...

还可以使用辅助函数更加清晰的构造集合:

function Set (list)
    local set = {}
    for _, l in ipairs(list) do set[l] = true end
    return set
end 
 
reserved = Set{"while", "end", "function", "local", }

发布日期:

所属分类: 编程 标签:


没有相关文章!