lua面向对象的传值

本文探讨了Lua中面向对象编程的两种不同传值方式及其影响。一种方式会导致实例间共享值,改变一个实例会影响其他实例;另一种方式则确保每个实例拥有独立的值,互不影响。通过具体代码示例展示了这两种方式的区别。

Lua面向对象的传值

local HandCard = {}

function HandCard:new( prams )
    local t = t or {}
    self.prams = prams
    setmetatable(t, self)
    self.__index = self
    return t
end

local t1 = HandCard:new(1)
print(t1.prams)

local t2 = HandCard:new(2)
print(t1.prams,t2.prams)

local t3 = HandCard:new(3)
print(t1.prams,t2.prams,t3.prams)

以上代码分别输出是:1,2 2,3 3 3
分析:self.prams = prams 这段代码将prams的值放进t的元表当中,新创建的实例则共用一个元表,这样的传值会因prams的改变而改变。

local HandCard = {}

function HandCard:new( prams )
    local t = t or {}
    t.prams = prams
    setmetatable(t, self)
    self.__index = self
    return t
end

local t1 = HandCard:new(1)
print(t1.prams)

local t2 = HandCard:new(2)
print(t1.prams,t2.prams)

local t3 = HandCard:new(3)
print(t1.prams,t2.prams,t3.prams)

以上代码分别输出是:1,1 2,1 2 3
分析:t.prams = prams 这段代码将prams的值放进t表当中,每新创建一个实例则生成一个t表,所以这样的传值则不会因为prams的改变而改变。

1:变量的与引用。\n2:变量的类型转换和判断类型方法。\n3:php运算符优先级,一般是写出运算符的运算结果。\n4:PHP中函数参,闭包,判断输出的echo,print是不是函数等。\n5:PHP数组,数组函数,数组遍历,预定义数组(面试必出)。\n6:PHP面向对象,魔术方法,封装、继承、多态。设计模式,包括(单利、工厂、迭代器、装饰、命令、策略)。\n7:正则表达式,每个标号含义,邮箱、网址、标签匹配,正则函数(面试必出)。\n8:PHP异常处理(级别,错误日志,控制错误输出)(面试必出)。\n9:PHP时间函数,日期计算函数。\n10:文件系统,记录日志、目录、文件的遍历、上、多方法得到文件扩展名、文件引用方式、引用函数区别。(面试必出)。\n11:会话控制,主要说原理。session与cookie在分布式应用中出现问题的解决方案。\n12:PHP模板引擎,常用模板引擎特点,MVC好与不好的地方。\n13:PHP安全处理,过滤函数。\n14:XML的使用。\n15:PHP字符串的处理,包括转义(安全)、编码、截取、定位、与数组间的转换、处理函数等。(面试必出)。\n16:Socket编程,各种协议,head头,curl参数含义。\n17:网络状态码含义,常用(204,304, 404, 504,502)。\n18:Apache配置文件,PHP配置文件,各个含义字段的含义。\n19:网络各种攻击的名词含义(SQL攻击、XSS、CSRF、DDos),防止措施。\n20:url的处理函数,得到url指定的部分。\nMysql基础\n1:基础sql语句书写(一般让写关联和子查询语句)\n2:索引的创建,优缺点,最左原则\n3:存储引擎,常用的几个,优缺点,差别,原理(面试必出)\n4:sql注入的处理方法\n5:mysql处理函数(PHP中封装的)\n6:PDO的使用方法,为什么使用\n7:mysql的优化,表拆分等\n8:事务处理,sql语句的处理效率等\n9:数据表字段的类型,同类型间的区别,改如何选取,int(10)与int(11)的区别等。\n10:数据库索引使用的那种数据结构,画出数据结构\nLinux\n1:常用命令的使用,vim编辑器的使用。\n2:进程,cpu等信息的查看命令。\n3:文件内查看命令(主要涉及统计信息)。\n4:Shell的使用,命令操作。\n5:awk的用法\n6:shell杀掉所有的php-fpm进程\nNoSql\n1:Redis的应用场景,结合微博业务说出他的具体应用。\n2:Redis与MC支持数据的不同点,两者都支持哪些数据结构的存储,写越多越好。\n3:Redis持久化存储的原理,与Mysql的应用区别。怎样保持持久化数据与内存数据同步的关系(Redis同步机制)\n4:Redis与MC在并发状态下的性能比较。\n5:MC的内存管理机制,当一个数据需要存储的时候怎样分配内存空间\n6:Redis的内存管理机制,与MC有哪些不同点。\n开发环境\n   1:PHP7中的新特性与废弃的特性\n   2:为什么要使用PHP7,PHP7快在哪里\n   3:PHP7中对异常和错误的理解\n版本控制\n   1:git的使用命令,例如:写出版本回退命令。\n   2:git与svn的区别。\n   3:如何进行多分支开发,包括多人开发协同,分段测试,上线。将上面这些具体解答
最新发布
10-09
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值