zoukankan      html  css  js  c++  java
  • table相关的API

    void lua_getglobal (lua_State *L, const char *name);
    获取lua全局变量,将lua的全局变量global name压栈。
    堆栈+1

    void lua_setglobal (lua_State *L, const char *name);
    设置lua全局变量,弹出一个值,并将之设为global name的值。
    堆栈-1

    void lua_createtable (lua_State *L, int narr, int nrec);
    创建空表并压栈,会根据参数预分配空间,如果你知道表将会有多大,预先分配的性能会更好。
    堆栈+1

    void lua_newtable (lua_State *L);
    创建空表并压栈,相当于lua_createtable(L, 0, 0)
    堆栈+1

    void lua_gettable (lua_State *L, int index);
    获取lua表中的值,将t[k]压栈,t表示index所指向的栈中的表,k表示存放在栈顶的索引。
    (1)栈顶索引key出栈;(2)然后将t[k]的值压栈;(3)在lua中会触发metamethod的index事件。
    堆栈大小不变

    void lua_settable (lua_State *L, int index);
    设置lua表中的值,进行t[k]=v操作,t表示index所指向的栈中的表,v表示栈顶的值,k表示存放在v的下面的索引key。
    (1)v和k都会出栈;(2)在lua中会触发metamethod的newindex事件。
    堆栈-2

    void lua_getfield (lua_State *L, int index, const char *k);
    t[k]入栈,t表示index所指向的栈中的表,会触发metathod.index事件。
    堆栈+1

    void lua_setfield (lua_State *L, int index, const char *k);
    进行t[k]=v操作,t表示index所指向的栈中的表,v表示栈顶的值。
    (1)栈顶v会出栈;(2)在lua中会触发metamethod.newindex事件。
    堆栈-1

    void lua_rawget (lua_State *L, int index);
    和lua_gettable类似,但不会触发metatable。
    堆栈不变

    void lua_rawset (lua_State *L, int index);
    和lua_settable类似,但不会触发metatable。
    堆栈-2

  • 相关阅读:
    使用Dockerfile构建镜像并push到私有仓库
    docker registry-v2 搭建私有仓库
    spring-cloud 学习四 服务网关
    spring-cloud 学习三 服务提供者
    TortoiseSVN安装和使用
    SG-UAP常用注解介绍
    weblogic漏洞
    开发工具历史版本
    Android Studio 打包生成apk
    weblogic unable to get file lock问题
  • 原文地址:https://www.cnblogs.com/sifenkesi/p/3873155.html
Copyright © 2011-2022 走看看