Lua中文语言编程源码-第十一节,其它小改动汉化过程

__tostring 汉化过程

liolib.c metameth[] {"__转换为字符串", f_tostring},

lauxlib.c luaL_callmeta(L, idx, "__转换为字符串")

lua.c luaL_callmeta(L, 1, "__转换为字符串")

__len 汉化过程

ltm.c luaT_eventname[]

ltablib.c checkfield(L, "__长度", ++n)

__len

lua_len 找 luaV_objlen 如果是表格,就找fasttm 定义 gfasttm 找表格的flags,或找luaT_gettm表格的TMS找ename luaH_getshortstr表格对应的名值,keyisshrstr找哈希值对应名值返回相应的哈希值。

_gc 汉化过程

ltm.c luaT_eventname[]

liolib.c metameth[]

lauxlib.c boxmt[]

lbaselib.c int o = optsnum[luaL_checkoption(L, 1, "collect", opts)]; 不能更改成收集,否则收集功能不正常。

ldebug.c *name = "__gc"; 这个不用改,仅用于回收

lgc.c luaE_warnerror(L, "__gc"); 这个不用改,仅用于提示收回出错。

loadlib.c 该函数用于创建并初始化一个名为CLIBS的全局表,并为其设置元表和垃圾回收函数。

__close 汉化过程

ltm.c luaT_eventname[]

liolib.c metameth[]

lauxlib.c boxmt[]

__newindex 汉化过程

loadlib.c checktab[]

__index 汉化过程

liolib.c metameth[] 另createmeta()设置元表的 __index 字段为方法表。

lua_setfield 注意???

相关推荐
GISer_Jing1 分钟前
下次接好运~
开发语言·javascript·ecmascript
傻啦嘿哟12 分钟前
代理IP并发控制:多线程爬虫的加速引擎
开发语言·php
一只余弦函数24 分钟前
《C++》STL--list容器详解
开发语言·c++·list
yunnanwang1 小时前
鹏哥C语言_85_结构体下(结构体传参)
c语言·开发语言
霜羽68921 小时前
【C++篇】模版进阶
开发语言·c++
给老吕螺丝1 小时前
C 语言作用域与存储期深度解析:空间与时间的双重维度
c语言·开发语言·经验分享·笔记
CHEN5_022 小时前
【Java面试题】缓存穿透
java·开发语言·数据库·redis·缓存
UQWRJ2 小时前
R语言基础图像及部分调用函数
开发语言·r语言
搜狐技术产品小编20232 小时前
浅析责任链模式在视频审核场景中的应用
java·开发语言·责任链模式
玉树临风江流儿3 小时前
QT收费情况
开发语言·qt