在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
先来看一段简单的代码: local Animal = {} function Animal:Eat( food ) print("Animal:Eat", self, food) end function Animal.Sleep( time ) print("Animal.Sleep", self, time) end Animal:Eat("grass") Animal.Eat("grass") Animal:Sleep(1) Animal.Sleep(1) 输出结果为: Animal:Eat table: 0x7f8421c07540 grass Animal:Eat grass nil Animal.Sleep nil table: 0x7f8421c07540 Animal.Sleep nil 1
由此可见, -- 如果要使结果一致,则: Animal:Eat("grass") Animal.Eat(Animal,"grass") Animal:Sleep() Animal.Sleep(Animal)
输出结果: Animal:Eat table: 0x7f8421c07540 grass Animal:Eat table: 0x7f8421c07540 grass Animal.Sleep nil table: 0x7f8421c07540 Animal.Sleep nil table: 0x7f8421c07540
-- 我们为什么可以用.和:来定义函数
用双冒号(:)时,也是一种语法糖,实际上默认传递一个self(Animal)参数:
可参考Lua函数定义: http://www.lua.org/manual/5.2/manual.html#pdf-next 3.4.10 – Function Definitions
|
请发表评论