跳到主要内容

元表规范(spec/metatable/

本目录规定 ZLua 在 Lua 侧可见的 类型表、静态元表(SMT)、实例元表(IMT) 布局,以及 __index / __newindex 成员分派语义。内容为 规范性 描述:Mono 与 Il2Cpp 运行时须表现一致;具体实现(Mono 三表 Lua indexer、Il2Cpp native Dispatch* 等)见 impl/metatable/

文档索引

文件内容
01-LAYOUT.mdSMT / IMT、ByVal·ByObj 双实例元表、类型表键(LuaConsts.h
02-INDEX.md__index / __newindex 算法、三表职责、miss 语义
03-BINDING.mdpublic 可见性、Bind 期继承扁平化、成员归类
04-SPECIAL-TYPES.mdenum、Nullable、struct、array、delegate 特例

与其它规范的边界

核心语义(速览)

  • 静/实例各一套 三表(method / fieldGetter / fieldSetter),由 indexer 闭包持有。
  • __index miss → nil__newindex miss → error`;无 C# 反射 fallback。
  • 继承在 EnsureBinding扁平写入 三表,运行时不上链查找。
  • struct 同时提供 __byval_instance_mt__byobj_instance_mt;引用类型仅 ByObj。