博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Lua面向对象 --- 封装
阅读量:5323 次
发布时间:2019-06-14

本文共 825 字,大约阅读时间需要 2 分钟。

工程结构:

Player.lua:

1 Player = {} 2  3 function Player:new() 4     local self = {} 5     setmetatable(self, {__index = Player}) 6     return self 7 end 8  9 Player.name = "Player"10 11 function Player:get()12     print("the function : get()")13 end14 15 return Player16 17 --[[18 两个点与一个点有什么区别呢?19 一个点用来定义和取得一个变量,这个变量可能是个函数20 两个点用来定义和调用一个函数,两个点会自动传入“调用者”这个table自身21 先看简单的:22 c = {a = 1, b = 2}23 function c:foo()24   print(self.a,self.b)25 end26 这里,c这个table定义了一个foo函数,用两个点定义的,在foo函数第一个参数的地方自动传入了c自身,然后调用一下27 c:foo()28 输出1 229 也可以这样,一个点调用函数,手动传入table:c.foo(c)30 输出也是一样的31 --]]

main.lua:

1 require "Player" 2  3 player1 = Player:new() 4 print(player1.name) 5 player1:get() 6  7 --[[ 8 输出结果: 9 Player10 the function : get()11 --]]

 码云上的相关工程:https://gitee.com/luguoshuai/LearnLua

转载于:https://www.cnblogs.com/luguoshuai/p/9224351.html

你可能感兴趣的文章
解决input框自动填充为黄色的问题
查看>>
音视频基础知识(一)
查看>>
CyclicBarrier的使用
查看>>
小程序开发笔记
查看>>
如何辨别一个程序员的水平高低?是靠发量吗?
查看>>
安装scikit-learn过程记录
查看>>
数据库的标识符可以有多长
查看>>
新手村之循环!循环!循环!
查看>>
在创业公司上班的感受
查看>>
Shell脚本
查看>>
masm32V11配置
查看>>
ASP.NET中Request.ApplicationPath、Request.FilePath、Request.Path、.Request.MapPath
查看>>
通过Python、BeautifulSoup爬取Gitee热门开源项目
查看>>
正则表达式的用法
查看>>
线程安全问题
查看>>
集合的内置方法
查看>>
IOS Layer的使用
查看>>
Android SurfaceView实战 带你玩转flabby bird (上)
查看>>
Android中使用Handler造成内存泄露的分析和解决
查看>>
SSM集成activiti6.0错误集锦(一)
查看>>