我正在使用在类中构造有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(请参阅“递归打印表”)。