LUA-点号和冒号】的更多相关文章

冒号的作用:1.定义函数时,给函数添加隐藏的第一个参数 self2.调用函数时,默认把当前调用者作为第一个参数传递进去 如 a:b(c) 可以理解为 a.b(a, c) 以下是用点号的定义和调用函数的方式: Song = { name = "", timeLength = , } function Song.SetName(name) Song.name = name; end 以上的函数定义可以使可以,但是有一个很大的问题,思考10s为什么? 假如有以下逻辑: ChineseSong…
定义的时候冒号默认接收self参数调用的时候冒号默认传递调用者自己为参数而句号要显示传递或接收self参数 -- 例如:句号定义,需要显示传递或接收 a = { x = } function a.fun(self) print(self.x) end a.fun(a)--输出1,将a自己做为参数传给fun函数的self 这样调用要传递self,比较麻烦,所以lua给一个方便的方法将函数定义改成冒号,就可以省略self参数 function a:fun() print(self.x) end a.…
Student = {}; Student.__index = Student; function Student:new(name, age) local temp = {}; setmetatable(temp, Student); temp.name = name; temp.age = age; return temp; end function Student:info() print(self.name, self.age); --运行stu2时会报错 -- print("name:…
首先,先来一段在lua创建一个类与对象的代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Class = {} Class.__index = Class   function Class:new(x,y)     local temp = {}     setmetatable(temp, Class)     temp.x = x     temp.y = y     return temp end   function Class:tes…
首先,先来一段在lua创建一个类与对象的代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Class = {} Class.__index = Class   function Class:new(x,y)     local temp = {}     setmetatable(temp, Class)     temp.x = x     temp.y = y     return temp end   function Class:tes…
1.初学者最易混乱Top1——调用函数时用点号还是用冒号? 我们来看看下面的两句代码: mSprite.setPosition(, ); mSprite:setPosition(, ); 对于初次接触Lua的朋友来说,这简直就是噩梦,为嘛函数的调用有两种形式,是让我们随便挑的意思吗? 这两种形式是有区别的,区别很大,但只有一个.不过,暂时不解释,后面再介绍. 2.最简单的类 我们先来看看简单的,来创建一个“类”试试,如下代码: TSprite = { x = , y = , } function…
由于LUA中是模拟类,没有class, 所以这里是使用.号来访问实例的成员 re.SetActive(re, re.activeSelf == false); 而冒号:  则是种语法糖,省略了上面代码中的第一个参数 re:SetActive(re.activeSelf == false); 也就是说:lua中对象.方法,只能找到方法,对象只能是类型,即使传入的是对象,所以等效于确定了单纯的方法! 所以冒号的方法,模拟了对象访问自己方法的思想,但本质不是! 记住:lua没有面向对象!…
转载自: http://blog.csdn.net/wangbin_jxust/article/details/12170233 lua编程中,经常遇到函数的定义和调用,有时候用点号调用,有时候用冒号调用,这里简单的说明一下原理. girl = {money = 200} function girl.goToMarket(girl ,someMoney) girl.money = girl.money - someMoney end girl.goToMarket(girl ,100) prin…
[lua 中的点.冒号与self] lua编程中,经常遇到函数的定义和调用,有时候用点号调用,有时候用冒号调用. girl = {money = 200} function girl.goToMarket(girl ,someMoney) girl.money = girl.money - someMoney end girl.goToMarket(girl ,100) print(girl.money) 上面进行了方法的点号定义和点号调用. boy = {money = 200} functi…
在Lua编程中,经常会看到有时用点号定义一个table的成员函数,有时却用冒号,在调用的时候也是如此.那么点号和冒号在使用上有什么区别呢?它们与self之间又是什么样的关系呢?稍安勿躁,接下来谜底将一一为你揭开. 下面先看一个例子 Class = {} Class.__index = Class function Class.new(x,y) local cls = {} setmetatable(cls, Class) cls.x = x cls.y = y return cls end fu…