Lua:创建表格

我试图使用表格来实现两个目的。例如:

s = passengers -- 用户输入
t = {[3] = car, [7] = bus, [24] = plane, [45] = train}

for k,v in ipairs t do
    if s = k then
        z = v * 10 -- 每人费用
    end
end

现在,这对我想做的事情来说非常基础。我有一个包含大约12个项目的列表,每个项目都有自己的编号。 我想知道是否可以使用表格执行上述操作,并为每个12个项目提供其自己的键值,然后使用它? 这个键值将代表每个项目的特定唯一编号。 另外,我是否可以稍后在类似上面的方程中使用该键的值?

点赞
用户2226988
用户2226988

如果你的键是唯一的,那么你的数据结构就是如此。表键的重点在于能够直接访问相应的值。

这与你的循环具有相同的效果:

local v = t[s] -- value for s or nil if s is not a key
if v != nil then
    z = v * 10
end

(或者更精确地说:local v = rawget(t,s),以考虑t具有__index元方法的情况。)

如果我们可以假设v永远不会为false(这会导致false*10的错误),那么它可以更自然地写成以下形式(跳过该错误):

local v = t[s]
if v then
    z = v * 10
end
2014-05-02 04:20:39