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

相关推荐
木子啊几秒前
PHP中间件:ThinkCMF 6.x核心利器解析
开发语言·中间件·php
崇山峻岭之间1 分钟前
Matlab学习记录40
开发语言·学习·matlab
Java后端的Ai之路2 分钟前
【Python教程11】-文件
开发语言·python
No0d1es11 分钟前
电子学会青少年软件编程(C语言)等级考试试卷(二级)2025年12月
c语言·青少年编程·等级考试·电子学会·二级
先做个垃圾出来………12 分钟前
SortedList(2)
开发语言
云栖梦泽12 分钟前
易语言开发从入门到精通:补充篇·文件批量操作深度实战·常用格式处理·自动化脚本开发·性能优化
开发语言
Big Cole18 分钟前
PHP面试题(核心基础篇:垃圾回收+自动加载)
android·开发语言·php
m0_7066532321 分钟前
跨语言调用C++接口
开发语言·c++·算法
小罗和阿泽22 分钟前
复习 Java(2)
java·开发语言
皮皮哎哟24 分钟前
数据结构:从队列到二叉树基础解析
c语言·数据结构·算法·二叉树·队列