[英]Is there an accessible table or enum of default types somewhere inside Lua?
Lua 是否将其默认类型存储在某处并且可以访问它们? 直接通过 Lua 还是通过 C API? 我知道 function type()
,但是是否可以迭代这些类型? 如果没有这样的表,是否至少有一种方法可以检查传递的字符串是否是上述 function 可以返回的默认类型? 我假设因为 Lua 可以识别它的类型,所以它将它们存储在某个地方,但是它们可以以某种方式访问吗? 是的,我知道我可以制作自己的类型表,问题是我在 Lua 和 C 中都需要这个表,这样它会变得混乱。
Lua 源代码中有一个数组type
使用:
static const char udatatypename[] = "userdata";
LUAI_DDEF const char *const luaT_typenames_[LUA_TOTALTYPES] = {
"no value",
"nil", "boolean", udatatypename, "number",
"string", "table", "function", udatatypename, "thread",
"upvalue", "proto" /* these last cases are used for tests only */
};
但这是一个实现细节,不是公共 API 的一部分,它包含一些您实际上不会通过调用 function 获得的值。 type
的文档说:
function 的可能结果是“
nil
”(字符串,不是值nil )、“number
”、“string
”、“boolean
”、“table
”、“function
”、“thread
”和“userdata
”。
如果我是你,我会在你程序的一个地方硬编码那个类型表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.