Попытка индексировать поле (нулевое значение)

#lua

#lua

Вопрос:

Я пытаюсь создать простой контейнер объектов в Lua (чтобы немного попрактиковаться в языке)

 Container = {}
Container.__index = Container

function Container.create( maxNumber )
   local c = {}             -- our new object
   setmetatable(c, Container)
   c.maxNumberOfRecords = maxNumber
   c.cont = {}
   return c
end

function Container:add(index, val)
         self.cont[index] = val
end

function Container:getAt(index)
    return self.cont[index]
end

return Container
  

но я всегда получаю ошибку Attempt to index field 'cont' (a nil value) , когда пытаюсь добавить в контейнер. Кто-нибудь может сказать мне, в чем проблема?
Я совершенно новичок в lua, но я просмотрел код в документации http://lua-users.org/wiki/SimpleLuaClasses

Ответ №1:

Можете ли вы показать пример кода, который не работает? Для меня это выглядит нормально:

 > Container = require "Container"
> c = Container.create(5)
> c:add(2, 42)
> =c:getAt(2)
42
  

Комментарии:

1. Спасибо, я глуп, у меня есть привычка из Java / Python вызывать функцию. и не :. Это была ошибка