lua - 引用变量的Lua问题
问题描述
我在 main.lua 中有这个:
local Vector3 = require "vector3"
local A = {
v = Vector3:new(16,16,16)
}
b = Vector3:new(A.v.x + 2, A.v.y + 3, A.v.z + 4)
print(A.v.x)
这在 Vector3.lua
local Vector3 = {
x,
y,
z
}
function Vector3:new(x,y,z)
o = {}
setmetatable(o,self)
self.__index = self
self.x = x
self.y = y
self.z = z
return o
end
return Vector3
为什么它打印 18 而不是 16?我想这与被引用的变量有关。我怎样才能得到 16 作为结果?
解决方案
Vector3:new
正在设置字段Vector3
,而不是在创建的对象中。试试这个:
function Vector3:new(x,y,z)
local o = {}
setmetatable(o,self)
self.__index = self
o.x = x
o.y = y
o.z = z
return o
end
推荐阅读
- python - 如何让pygame运行得更快
- android - 无法使用图形视图库
- c# - Asp net Project //导出Excel函数失败
- php - 动态隐藏 Wordpress 页面上的部分
- compilation - PIC32MX270F256B 没有 C32 编译器选项
- javascript - 节点画布层替换
- asp.net - Sagepay 会话密钥 vb.net
- ios11 - 在 iOS 11 的文件提供程序扩展中,我想为用户启用我的应用程序的密码来访问文件
- excel - 使用 MessageBox 访问文件创建 Excel
- javascript - 如何先添加innerhtml,然后将eventlistner添加到后面的元素