我正在使用在类中构造有Corona的应用程序创建应用程序,当我想要传递数组对象以创建对象时遇到问题。
我有这个:

主lua

local SurpriseBoxClass = require("SurpriseBox")
local BoxClass = require("Box")

local box1 = BoxClass.new('palo', 'images/chestClose.gif', 'OPEN')
local box2 = BoxClass.new('moneda', 'images/chestClose.gif', 'OPEN')
boxes = { box1, box2 }

local game = SurpriseBoxClass.new(boxes)


SurpriseBox.lua

local SurpriseBox = {}
local SurpriseBox_mt = { __index = SurpriseBox }

function SurpriseBox.new(boxesAux)
 local object = {
   boxes = boxesAux
 }
 return setmetatable( object, SurpriseBox_mt )
end


问题是当我想在SurpriseBox方法中打印数组的内容时,程序说如果执行此操作,则数组为nil:

print(boxes[0])


我能做什么?

谢谢!

最佳答案

Lua表基于1。

尝试print(boxes[1], boxes[2])

它将打印表格ID。如果需要打印表的内容,则必须遍历其字段或use a custom printer that does it for you(请参阅“递归打印表”)。

08-04 06:13