gpt4 book ai didi

lua - 如何将表传递给没有第一个元素的函数?

转载 作者:行者123 更新时间:2023-12-04 15:59:32 25 4
gpt4 key购买 nike

我正在尝试创建一个函数,它接收一个字符串表并根据它的第一个元素将该表解析为其他函数。

我的代码:

fruits = {}

function addToFruits(t)
print(#t)
end

function parseTable(t)
if t[1] == "fruits" then
addToFruits(table.remove(t, 1)) --pass only {"apple", "banana"}
end
end

parseTable({"fruits", "apple", "banana"})

我得到的结果:

6

我期望的结果:

2

如何正确解析没有第一个元素的表格?

最佳答案

table.remove 的返回值是被移除的元素(“fruits”)

该对象是一个字符串,长度为 6,解释了您的代码得到的答案。

如果你想要正确答案 2,那么下面的代码就可以做到。

fruits = {}

function addToFruits(t)
print(#t)
end

function parseTable(t)
if t[1] == "fruits" then
table.remove(t, 1)
addToFruits( t ) --pass only {"apple", "banana"}
end
end

parseTable({"fruits", "apple", "banana"})

显然这会损坏原始表格,并且根据使用情况,可能需要表格副本 - 有各种文章。

我会优先使用诸如...的结构message = { type = "fruits", data = { "apple", "banana"} }

复制代码

允许将数据与消息类型分开。

新代码看起来像....

fruits = {}

function addToFruits(t)
print(#t)
end

function parseTable(t)
if t.type == "fruits" then
addToFruits( t.data ) --pass only {"apple", "banana"}
end
end
message = { type = "fruits", data = { "apple", "banana" } }
parseTable( message )

关于lua - 如何将表传递给没有第一个元素的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52399243/

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