lua-设计与实现-8环境与模块

Posted jaysonhome

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lua-设计与实现-8环境与模块相关的知识,希望对你有一定的参考价值。

8.1环境

含义: 与环境相关的特殊变量一--Global表、env表、registry表以及UpValue 。

  • Global表存放在lua_State 结构体中也称为G表。每个lua_State 结构体都有一个对应的G表。不用多说,这个表就是存放全局变量的。
  • env表存放在Closure 结构体中,也就是每个函数有自己独立的一个环境。
  • registry表是全局唯一的,它存放在global_State结构体中,这个结构体在整个运行环境中只有一个。

作用:

在讲解OP_GETGLOBAL以及OP_SETGLOBAL指令时说到,查找一个全局变量的操作,其实更精确地说,是在当前函数的en v表中查找:

以上是关于lua-设计与实现-8环境与模块的主要内容,如果未能解决你的问题,请参考以下文章

Redis | 第8章 发布订阅与事务《Redis设计与实现》#yyds干货盘点#

Redis | 第9章 Lua 脚本与排序《Redis设计与实现》#yyds干货盘点#

Nginx基础 - Nginx+Lua实现灰度发布与WAF

lua源码分析之string类型的实现

lua行为树设计与实现

UE4 Unlua源码解析8 - Lua与C++之间的参数转换的实现原理