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 注意???

相关推荐
千里码aicood4 分钟前
【2025】基于python+django的驾校招生培训管理系统(源码、万字文档、图文修改、调试答疑)
开发语言·python·django
小李苦学C++9 分钟前
C++模板特化与偏特化
开发语言·c++
小王努力学编程18 分钟前
元音辅音字符串计数leetcode3305,3306
开发语言·c++·学习·算法·leetcode
佚明zj19 分钟前
【C++】如何高效掌握UDP数据包解析
开发语言·c++·udp
笑口常开xpr1 小时前
C 语 言 --- 二 维 数 组 的 应 用
c语言·开发语言
讨厌下雨的天空1 小时前
C++之多态
开发语言·c++
郝YH是人间理想1 小时前
python多种数据类型输出为Excel文件
开发语言·python·pandas
hunandede2 小时前
QT 学习一 paintEvent,QPainter ,QImage
开发语言·qt·学习
堕落年代2 小时前
Python使用FastAPI结合Word2vec来向量化200维的语言向量数值
开发语言·python·fastapi
~请叫我小祸害~2 小时前
在 C# 中使用 Dapper 查询数据并导出 Excel
开发语言·数据库·c#·excel