设为首页 加入收藏

TOP

Lua学习笔记(二)
2017-06-17 10:22:34 】 浏览:2009
Tags:Lua 学习 笔记
le(a, mt) –关联元表

setmetatable(b, mt) –关联元表

到此,变量a,b都已经有了元方法”+”.当执行c = a + b时,c是与a具有相同结构的表,但注意变量c是没有元方法”+”.在实际测试中,变量a,b只需要一个具有元方法就可以进行”+”这个操作,但如果a,b都没有元方法”+”,那结果就会报错.

其时以上过程,我们可以更简化一些,先编写好元方法,同时变量也可以用函数返回值的方式创建,同时在函数内部完成变量结构,以及元表的关联.

可以通过getmetatable查看关联的元表,通过semetatable关联元表,这个函数都定义在_G中,属于Lua预定义的函数.

__index:对表的操作,如果元方法不存在,或访问的元素不存在,都会查找默认的元方法__index,如果__index为nil,返回nil,否则调用__index.如果__index是一个表,就会在这个表中查找元方法.找到就会调用,否则返回nil.同样__index下还可以继续有__index.还有一种情况是,

如果不希望访问__index,可以使用rawget来实现.

__newindex:如果是对表中的元素进行赋值操作,默认情况下如果元素不存在就会在表中增加这个元素.__newindex会在这种情况下代替默认操作.

11,继承

明白过程及原理,但只是生硬的套用理论,没有真正理解.

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇一种通用的C++类或者结构成员变量.. 下一篇C++标准库笔记:算法--min/max/sw..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目