如何在Lua的C API中查找特定键是否存在于给定的Lua table中,除了穿越整个表之外?

如何在Lua的C API中查找特定键是否存在于给定的Lua table中?

我知道穿越整个表可以达到此目的,但这不是一种有效的方法。 是否有更好的方法?

点赞
用户2858170
用户2858170

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

您始终将键值对放入表中。没有值,也没有键。

2021-01-14 10:02:53
用户3574628
用户3574628

你想要的函数是lua_gettable.

首先,将表先压入堆栈,然后压入你想要检查的键。然后你应该能够通过执行gettable(L, -2) != LUA_TNIL来得到它。

2021-01-14 15:28:33