Lua中类似于dictionary.get()方法的等价物?

如何使用参数访问字典?

在Python中,我可以使用dictionary.get(param) 在Lua中是否有相应的方法?

我想要做类似这样的事情:

function make_object_from_flag(x, y, flag)
 local flag_obj = {
    [1] = make_impassable_object(x, y),
    [2] = make_coin(x,y),
    [4] = make_screen_transition_object(x, y),
 }

 flag_obj.get(flag)
end
点赞
用户4984564
用户4984564

Lua 只有一种数据结构,它实质上是一个称为“table”的 map(或者字典)。

在 Lua 中,表索引通常使用方括号 [],就像 python 中数组使用一样。

因此,基本上就像 Egor Skriptunoff 在他的评论中指出的那样,您想要使用 flag_obj[flag] 来访问表 flag_obj 中与键 flag 关联的值。

但需要注意的是,在 Lua 中使用位标志(如 C 中所做的那样)非常不常见,并且在性能上不太好,在没有充分的理由的情况下通常不应该这样做。

2021-05-07 05:28:02