一直不理解lua的面向对象,于是抽个时间看了些视频,记录一下自己的理解
1,所学视频来源是【唐老狮】Unity热更新之Lua语法_哔哩哔哩_bilibili
2,基础知识
Lua 查找一个表元素时的规则,其实就是如下 3 个步骤:(函数也是元素)
- 1.在表中查找,如果找到,返回该元素,找不到则继续
- 2.判断该表是否有元表,如果没有元表,返回 nil,有元表则继续。方法是一个表
- 3.判断元表有没有 __index 方法,如果 __index 方法为 nil,则返回 nil;如果 __index ,则重复 1、2、3;如果 __index 方法是一个函数,则返回该函数的返回值。
//lua表的定义
typedef struct Table {
CommonHeader;
lu_byte flags; /* 1<<p means tagmethod(p) is not present */
lu_byte lsizenode; /* log2 of size of 'node' array */
unsigned int alimit; /* "limit" of 'array' array */
TValue *array; /* array part */
Node *node;
Node *lastfree; /*