• lua


    pcall(f[,arg1,..])

    • 以保护模式调用函数f
      第一个返回值是状态码(一个布尔量), 当没有错误时,其为真。 此时,pcall 同样会在状态码后返回所有调用的结果。

    next (table [, index])

    运行程序来遍历表中的所有域。 第一个参数是要遍历的表,第二个参数是表中的某个键。 next 返回该键的下一个键及其关联的值。 如果用 nil 作为第二个参数调用 next 将返回初始键及其关联值


    __newindex

    • 当settable操作,key存在直接赋值。否则调用__newindex元方法(如果有)
    
    local t = {}
    --t[1] = 1
    print("t:",t)   
    setmetatable(t,{__newindex = function(t,k,v)
             print(t,k,v) ---和上面的t是同一个
    end}) 
    t[2] = 2
    t[1] = 11
    

    _ENV 外部的局部变量

    被 _ENV 用于值的那张表被称为 环境。

    Lua 保有一个被称为 全局环境 特别环境。

    1,设置函数环境——setfenv

    环境:暂且简单理解成Namespace。解决命名冲突问题。

    (当我们在全局环境中定义变量时经常会有命名冲突,尤其是在使用一些库的时候,变量声明可能会发生覆盖,这时候就需要一个非全局的环境来解决这问题。setfenv函数可以满足我们的需求。)

      setfenv(f, table):设置一个函数的环境

      (1)当第一个参数为一个函数时,表示设置该函数的环境

      (2)当第一个参数为一个数字时,为1代表当前函数,2代表调用自己的函数,3代表调用自己的函数的函数,以此类推

  • 相关阅读:
    编程实现折半法查找
    浅谈C++多态性
    纯虚函数的使用汇总
    虚函数如何实现多态 ?
    重载(overload),覆盖(override),隐藏(hide)的区别
    Qt入门之常用Qt标准对话框之QMessageBox
    Qt5学习笔记(5)——列表框QListWidget类
    python 文件的方法
    python---while循环
    python ---strip()方法,split()方法,删除字符串开头或结尾,字符串分隔
  • 原文地址:https://www.cnblogs.com/Jaysonhome/p/13485179.html
Copyright © 2020-2023  润新知