2

私はLuaでクラスを持っています。このコンストラクターでは、(空のテーブルで) 変数を宣言し、オブジェクトの関数にアクセスして、このテーブルにオブジェクトを挿入したいと考えています。私のコードはこれです:

local BoxClass = require("Box")
local SurpriseBox = {}
local SurpriseBox_mt = { __index = SurpriseBox }    -- metatable

function SurpriseBox.new()  -- constructor
  local object = {
    boxes = {}
  }
  SurpriseBox:CreateBoxes()
  print('constructor -> ' .. #object.boxes)  --> 0
  return setmetatable( object, SurpriseBox_mt )
end

-------------------------------------------------

function SurpriseBox:CreateBoxes()
  local box1 = BoxClass.new('palo', 'images/chestClose.gif', 'OPEN')
  local box2 = BoxClass.new('moneda', 'images/chestClose.gif', 'OPEN')

  self.boxes = { box1, box2}
end

関数 CreateBoxes() にアクセスした後、テーブル内には何もありません。

ご協力いただきありがとうございます!

4

1 に答える 1