gpt4 book ai didi

lua - 使用 type() 函数查看当前字符串是否作为表存在

转载 作者:行者123 更新时间:2023-12-04 11:17:58 29 4
gpt4 key购买 nike

是否可以查看字符串是否与表名相同?

例如:
我知道存在一个名为“os”的表,并且我有一个字符串 "os" .
那么有没有办法做到这一点:

x="os"
if type(x)=="table" then
print("hurra, the string is a table")
end

当然,这个例子不会像我想要的那样工作,因为
type(x)

只会返回“字符串”。

之所以要这样做,只是因为我想列出所有现有的Lua表,所以我做了这段代码:
alphabetStart=97
alphabetEnd=122

function findAllTables(currString, length)

if type(allTables)=="nil" then
allTables={}
end

if type(currString)=="table" then
allTables[#allTables+1]=currString
end

if #currString < length then
for i=alphabetStart, alphabetEnd do
findAllTables(currString..string.char(i), length)
end
end
end

findAllTables("", 2)

for i in pairs(allTables) do
print(i)
end

如果有一种更简单的方法来列出所有现有表,我不会感到惊讶,我只是为了在学习 Lua 的过程中获得乐趣而这样做。

最佳答案

如果要遍历所有全局变量,可以使用 for循环遍历特殊 _G存储它们的表:

for key, value in pairs(_G) do
print(key, value)
end
key将保存变量名称。您可以使用 type(value)检查变量是否是表。

要回答您的原始问题,您可以使用 _G[varName] 按名称获取全局变量。 .所以 type(_G["os"])会给 "table" .

关于lua - 使用 type() 函数查看当前字符串是否作为表存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5250374/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com