Lua:如何创建一个可以包含混合数据类型并将其作为参数传递的变量

我需要在参数中传递数据。

可以是以下任一类型:

1)单个字符串 -> 'StringData'
2)多个字符串 -> 'StringData0''StringData1''StringData2'
3)单个数字数据 -> 1030.22
4)多个数字数据 -> 10,20,3030.22,12.01,1.4
5)字符串,布尔值,整数,双精度数的混合 -> 'StringData'true10,45.33false

是否有任何方法可以创建可以接受上述任何可能性的变量

ui.InvokeFunction(parameter1,parameter2,ArgumentList)

我想在ArgumentList变量中填充数据,可以是上述5种可能性中的任何一种。 我没有找到任何方法可以在ArgumentList中插入多个数据类型。

原文链接 https://stackoverflow.com/questions/70284743

点赞
stackoverflow用户1442917
stackoverflow用户1442917

我认为没有问题,因为你可以将 Lua 中的任何值作为参数传递并使用 type 函数检查它的类型。此外,如果你需要传递多个值,可以传递一个表格(其中可以有不同类型的值)。

ArgumentList = {'StringData', true, 10, 45.33, false}
-- type(ArgumentList[1]) == 'string'
-- type(ArgumentList[2]) == 'boolean'
-- 以此类推...
2021-12-09 06:52:46
stackoverflow用户17637570
stackoverflow用户17637570

我不是lua的专家,但我认为可以这样做:


参数列表 = {
  1 = {
   布尔 = true
   字符串 = ""
   其他 = 69
   表格 = nil
  }
}

有效数据类型 = {
 "字符串" = true
 "布尔" = true
 "数字" = false
 "表格" = false
}

过滤后列表 = {}

for _,v in pairs(参数列表) do
 for x in v._ do
  if 有效数据类型[type(x)] then
   table.insert(过滤后列表._, {type(x) = 有效数据类型[type(x)]})
  else
   table.insert(过滤后列表._, {type(x) = false})
  end
 end
end

我假设这不是您所需的最有效的方式,但希望能对您有所帮助。

2021-12-09 17:09:32