lua低级异常,求教
发布时间:2011-06-30 07:28:39 文章来源:www.iduyao.cn 采编人员:星星草
lua低级错误,求教
vector ={x,y,z,
new = function(x,y,z)
o = setmetatable({},self)
self.__tostring = tostring
o.x = x or 0
o.y = y or 0
o.z = z or 0
return o
end,
Add = function(v1,v2)
return new(v1.x+v2.x,v1.y+v2.y,v1.z+v2.z)
end,
Sub = function(v1,v2)
return new(v1.x-v2.x,v1.y-v2.y,v1.z-v2.z)
end,
Mul = function (v1,v2)--叉积公式
return new(v1.y*v2.z-v2.y*v1.z,v1.z*v2.x-v2.z*v1.z,v1.x*v2.y-v1.y*v2.x)
end,
length = function()
return math.sqrt(self.x*self.x+self.y*self.y+self.z*self.z)
end,
tostring = function()
return "{"..self.x..","..self.y..","..self.z.."}"
end,
}
local v1=vector:new(1,2,3)
print(v1)
自己写的lua,不过错了
应该是这里错了
new = function(x,y,z)
o = setmetatable({},self)
self.__tostring = tostring
o.x = x or 0
o.y = y or 0
o.z = z or 0
return o
end,
不知道怎样改才能运行,每次运行都说self是nil,怎样改,原因是什么,在线等回答。。谢谢
------解决方案--------------------
终于见到学lua的了
lua中你那样定义函数是没有self的,要在外面定义,而且用“:”定义,":"调用
她面向对象的方法是用":"操作符号
当使用":"调用函数的时候相当于把:左边的一个对象当作函数的第一个参数
所以你的函数是
vector ={x,y,z}
function vector:__tostring()
return "{"..self.x..","..self.y..","..self.z.."}"
end
function vector:new(x,y,z)
o = setmetatable({},self)
o.x = x or 0
o.y = y or 0
o.z = z or 0
return o
end
function vector:Add(v1,v2)
return new(v1.x+v2.x,v1.y+v2.y,v1.z+v2.z)
end
function vector:Sub(v1,v2)
return new(v1.x-v2.x,v1.y-v2.y,v1.z-v2.z)
end
function vector:Mul(v1,v2)--叉积公式
return new(v1.y*v2.z-v2.y*v1.z,v1.z*v2.x-v2.z*v1.z,v1.x*v2.y-v1.y*v2.x)
end
function vector:length()
return math.sqrt(self.x*self.x+self.y*self.y+self.z*self.z)
end
local v1=vector:new(1,2,3)
print(v1)
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
erlang:创建表
mnesia:create_table(student, [{attributes,{name,number,sex}}]).
怎么老是提示:
{aborted,{bad_type,student,{...
-
100分求助,matlab一维矩阵变成二维矩阵,怎么感觉我写的代码这么绕呢
希望把Input矩阵(一维)变成3行4列的二维矩阵Output;我写了下面...
-
为什么没有易语言版块呢?
为什么没有易语言版块呢?
------解决方案--------------------
易语言,还不常用,交流也不比,所以无....
-
批处理的一个问题
想用批处理更改文件属性
@echo off
arrtib -R /S E:\home\*.*
exit
这样写是错误的吗?
为什么没起作用啊
--...
-
几个关于大型机的问题(新手求救啊~)
1、z/OS 和UNIX系统的相同点和相异点有哪些啊?主目录和用户目录的区别是什么啊?
2、用JCL创建一...
-
急求!如何用正则截取一对标签中的字符当中的日期
<p class="source">
<!--[if !IE]>收藏功能<!...
-
批处理代码放在U盘里,如何复制整个硬盘的时间段文件? qivsran老师的答案,谢谢!
@echo off
md 新文件
setlocal enabledelayedexpa...
-
复制文件不带目录文件夹如何修改代码?同名文件仅复制最新的
@echo off
md %computername%资料 2>nul
Cd /d %computername%资料
F...
-
求C里面 全角半角转换函数
求C里面 全角半角转换函数
------解决方案--------------------
我在别处看了,希望对你有帮助。
...
-
求助:关于qtp10 无法识别 maven自动构建flex3.6 的问题
近日遇到maven自动构建flex3.6的问题。希望大家提出宝贵意见。
问...