1、轻量级userdata(light userdata)与完全userdata(full userdata)的区别:
1)一个轻量级userdata表示一个C指针的值,而完全userdata表示一个C对象;
2)使用轻量级userdata,用户必须自己管理内存;完全userdata的开销并不比轻量级userdata大多少,只为分配内存增加一些malloc开销;
3)轻量级userdata的真正用途是相等性判断,他与所有表示同一指针的轻量级userdata相等。一个完全userdata只与自身相等。
2、一些面向对象的语言通过“终结函数”(比如C++中的析构函数)机制释放资源,Lua通过元方法__gc指定终结函数。