除了遍历整张表之外,如何通过C APIs找出给定的Lua表是否有特定的key?

问题描述

如何通过C APIs找出给定的Lua表是否有特定的key?

我知道遍历整个表可以达到这个目的,但这不是一种有效的方法。 有没有更好的方法

解决方法

只需检查 yourtable[yourkey] 是否为 nil

您总是将键值对放入表中。没有价值,没有钥匙。

,

您想要的函数是 lua_gettable

先按表,再按你要检查的键。那么您应该可以执行gettable(L,-2) != LUA_TNIL