为什么我的价值是零?不明白会发生什么

时间:2018-12-13 18:44:58

标签: lua

我有这个。

components=require("components")
entity={}
--test---
function entity.test(x,y)
   self ={}
   self.id="test"
   --self.position=components.position(x,y)
   return self
end
return entity

主要我有这个。

entities=require("entity")

function love.load()
test1=entities.test(100,200)
print(test1.id)
end

输出正常,但是,当我添加另一个组件时。

 components=require("components")
    entity={}
    --test---
    function entity.test(x,y)
        self ={}
        self.id="test"
        self.position=components.position(x,y)
        return self
    end

    return entity

并进行其他打印

  entities=require("entity")

function love.load()
    test1=entities.test(100,200)

    print(test1.id)
    print(test1.position.y)

end

我首先得到一个nill评估者,然后由于字段位置为nill而出错。发生什么事?预先感谢。

我的component.lua

component = {}
--position--
function component.position(x,y)
    self={}
    self.x=x
    self.y=y
    return self
end
return component

1 个答案:

答案 0 :(得分:2)

您可以通过声明变量local来解决此问题,例如local self = {}

调用entity.test时,该函数将新表分配给全局self。然后,它将调用components.position,这会向self分配一个新表,而该表永远​​不会获得position字段。