gpt4 book ai didi

lua - 检查数组是否包含特定值

转载 作者:行者123 更新时间:2023-12-03 21:08:55 24 4
gpt4 key购买 nike

我有这个数组,有一些值 (int),我想检查用户给定的值是否等于该字符串中的值。如果是,输出类似“得到你的字符串”的消息。

列表示例:

local op = {
{19},
{18},
{17}
}

if 13 == (the values from that array) then
message
else
other message

如何才能做到这一点?

最佳答案

Lua 不像其他语言那样有严格的数组——它只有哈希表。 Lua 中的表被认为是类数组,当它们的索引是数字且密集排列时,不留空隙。下表中的索引为 1, 2, 3, 4 .

local t = {'a', 'b', 'c', 'd'}

当你有一个类似数组的表时,你可以通过遍历表来检查它是否包含某个值。您可以使用 for..in循环,以及 ipairs 函数来创建一个通用函数。
local function has_value (tab, val)
for index, value in ipairs(tab) do
if value == val then
return true
end
end

return false
end

我们可以在 if 中使用上述内容有条件得到我们的结果。
if has_value(arr, 'b') then
print 'Yep'
else
print 'Nope'
end

重申我上面的评论,您当前的示例代码不是类似数组的数字表。相反,它是一个类似数组的表,包含类似数组的表,它们的每个第一个索引中都有数字。您需要修改上面的函数以使用您显示的代码,使其不那么通用。
local function has_value (tab, val)
for index, value in ipairs(tab) do
-- We grab the first index of our sub-table instead
if value[1] == val then
return true
end
end

return false
end

Lua 不是一种非常庞大或复杂的语言,它的语法非常清晰。如果上述概念对您来说完全陌生,您将需要花一些时间阅读真正的文献,而不仅仅是复制示例。我建议阅读 Programming in Lua以确保您了解非常基础的知识。这是第一版,针对 Lua 5.1。

关于lua - 检查数组是否包含特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33510736/

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