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

相关推荐
狗凯之家源码网9 分钟前
纯 PHP+MySQL 应用市场系统源码实测!
开发语言·mysql·php
dishugj20 分钟前
系统架构风险点、敏感点和权衡点的概念和区分
java·开发语言
Zwawa28 分钟前
先把轮子转稳,才不会烧心:编码器速度环 PID 怎么接回 PWM
c语言·单片机·嵌入式
geovindu38 分钟前
rust:Memento Pattern(续)
开发语言·后端·设计模式·rust·行为模式·备忘录模
马优晨1 小时前
JAVA 中 VO 实体类是什么意思,为什么要做这个
java·开发语言·状态模式·java vo·java vo是什么
Aurorar0rua1 小时前
CS50 x 2024 Notes Python - 01
开发语言·python·学习方法
茉莉玫瑰花茶2 小时前
GO [ 标准库 ]
开发语言·后端·golang
半杯咖啡半行码2 小时前
C++11核心特性详解:从C++11到C++20 的现代C++指南
开发语言·c++
2601_966949653 小时前
如何判断实时行情数据是否已经更新?从时间戳、交易时段到行情有效性
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
架构师伯子明3 小时前
QT+OpenGL(3):FBO离屏渲染
开发语言·qt