精华内容
下载资源
问答
  • Lua 全局变量

    2016-01-12 15:15:25
    Lua变量无需先声明(定义)才能使用,如果你要使用某个变量,直接使用就可以了。 未赋值的变量的值是nil。print(b) --> nil b = 10 print(b) --> 10如果你将一个变量手动赋值为nil,则会对该变量进行内存回收。b ...

    Lua的变量无需先声明(定义)才能使用,如果你要使用某个变量,直接使用就可以了。
    未赋值的变量的值是nil。

    print(b) --> nil
    b = 10
    print(b) --> 10

    如果你将一个变量手动赋值为nil,则会对该变量进行内存回收。

    b = nil
    print(b) --> nil
    展开全文
  • 最近在写lua脚本时碰到了一个坑,成功使我fishing一下午。。 举例: 2个lua文件 A B , B类继承A类 A类: function A:func1() ... end A.item1 = { ["item"] = self.func1 } function A:func2() ... ...

    最近在写lua脚本时碰到了一个坑,成功使我fishing一下午。。

    举例:

    2个lua文件 A B , B类继承A类

    A类:

    function A:func1()

    ...

    end

     

    A.item1 = {

    ["item"] = self.func1

    }

    function A:func2()

    ...

    end

     

    B类:

    function B:init()

    ....

    self:func2()

    ...

    end

     

    继承部分就不写出来了,这么写总是报func2是nil

    2 个坑点:

    1 框架里在运行前会dofile所有的lua,这里dofile肯定是报错了,但是不知道为什么没停下,仅仅是停在这里,也就是说func1其实是function  但是func2是nil

    2 item1里面赋值不能用self   self.func1 改成 A.func1就行了。。。。     

    第二点是在第一点 各种调试下找到的,lua的dofile碰到item1时就停下了 也没报错 好坑。。(没报错也许是框架问题)

     

    还有个坑点就是

    function A:func3(a,b)

    return a+b

    end

     

    local item2 = A.fun3

    item2(1,2)

    这么写会报b为nil

    为啥捏,因为func3里面其实还有个参数就是self

    所以应该是这么调用  item2(self,1,2)

    展开全文
  • 在Resources文件夹中新建一个CSharpCallLua.lua.txt文件,定义几个变量 i = 10 str = "wwz" isStu = false void Start() { LuaEnv luaEnv = new LuaEnv(); luaEnv.DoString("require 'CSharpCallLua'"); int ...

    访问Lua的变量

    在Resources文件夹中新建一个CSharpCallLua.lua.txt文件,定义几个变量

    i = 10
    str = "wwz"
    isStu = false
    
    void Start()
    {
        LuaEnv luaEnv = new LuaEnv();
    
        luaEnv.DoString("require 'CSharpCallLua'");
     
        int i = luaEnv.Global.Get<int>("i");
        print(i);
        string str = luaEnv.Global.Get<string>("str");
        print(str);
        bool isStu = luaEnv.Global.Get<bool>("isStu");
        print(isStu);
    
        luaEnv.Dispose();
    }
    

    Lua的number类型对于C#的int,float,double的,如果类型不对,会返回0

    比如在Lua中i = 10.1,C# 中int i = luaEnv.Global.Get(“i”);得到的i将是0

    所以在C#中也可以用float,double来接收Lua的number类型

    double i = luaEnv.Global.Get<double>("i");
    

    这样就能正常输出了
    在这里插入图片描述

    展开全文
  • lua local 变量和表

    千次阅读 2016-12-24 15:49:55
    lua对local的处理有加速访问的效果,并且将变量定义为局部变量也是一种好的编程习惯。 lua变量和表的local化处理的方式是不同的 ======example====== foo = {} foo.a =1 do local ...

    local是我们在lua编程里面经常写的,经常写的方式为local foo = foo。lua对local的处理有加速访问的效果,并且将变量定义为局部变量也是一种好的编程习惯。


    lua对变量和表的local化处理的方式是不同的

    ======example======

    foo = {}

    foo.a =1


    do

    local foo = foo

    foo.a =2

    print(foo, _G["foo"])

    print(foo.a)

    print(_G["foo"].a)

    end


    print(_G["foo"].a)


    print("----next case----")

    var = 1

    do

    local var = var

    var = 2

    print(var)

    print(_G["var"])

    end


    print(_G["var"])


    执行结果:

    table: 0x7febca407920 table: 0x7febca407920

    2

    2

    2

    ----next case----

    2

    1

    1

    =============

    通过代码结果可以看到,local表=全局表,是同一个表,这主要是由于lua的表机制是匿名的,相当于函数的指针,local foo = foo,即使本地foo没有在全局_G注册,还是引用的是同一个表。当没有变量指向表的时候,垃圾回收器会销毁这个匿名表。

    而local变量则是创建一个新的变量,遵守子作用域覆盖父作用域的规则。

    特别是对于require "modname"中的模块,在编写的时候,不能直接使用全局变量,因为是同一个变会保存其变量状态影响其他使用。最好的处理方式就是尽可能的依据入参,函数内部定义local 变量等来编写代码。

    展开全文
  • lua 临时变量生存周期

    千次阅读 2017-12-30 16:42:55
    目前客户端的开发是基于lua进行的,所以偶尔会遇到一些疑问,例如local变量的生存周期。 如果在一个函数或者循环控制语句中定义了一个local变量,其生存周期比较明显,从函数中创建,函数结束后回收(循环同理)。 ...
  • Lua变量环境

    千次阅读 2013-11-14 17:15:05
    lua定义的全局变量都存table中,这个table放在空间_G里面,和C/C++里面的namespace 一样,我们通过代码来解释吧! a = 1 local b = 3 local newg = {} setmetatable(newg, {__index = _G})//绑定到newg新的table ...
  • lua 变量

    2018-09-01 14:27:13
    1、lua语法和C#对比: C#: 定义变量需要说明定义什么类型的数据变量,比如定义整型变量 – int numInt=5;(C#中每句代码结束需要加分号(;)),定义字符串 string str=”MeKey”; ...
  • lua 本地变量的作用域

    2016-03-29 15:49:15
    lua 不加前缀定义的为全局变量, 例如 :i = 1 -- 这样定义的为全局变量. 定义本地变量使用local前缀, 例如 : local i = 1 -- 定义一个本地变量. 本地变量的作用域比较诡异, 特别是在命令行中很"诡异", 需要理解这个...
  • 一、标识符 Lua 标示符用于定义一个变量 标识符以字母或下划线开头,不能以数字开头 二、数据类型 Lua 声明变量的时候 不需要定义数据类型,直接为变量赋值即可。 三、总结 标识符以字母或下划线开头,不能以数字...
  • lua语法-变量定义与使用

    千次阅读 2018-03-04 14:45:43
    全局变量:直接定义变量名,并赋值 例如,a = 1; 注:用;结束当前语句(可选,也可以不使用分号) 局部变量:使用local关键字进行定义 例如,local b = 2; 变量命名规则 遵循C/C++语言中的变量命名规则 ...
  • 由于lua里面随手怎么的写少一个local啥的,就可以轻松创造出一个全局变量来,导致这种定义错全局变量的问题挺容易发生的,尤其是在一个代码量比较大的项目里,一人一个,就挺稳的了。 那么为了尽量查找和解决这样的...
  • php和lua变量作用域

    2016-05-03 02:49:10
    感觉lua宽松的很多,函数外部定义变量,函数内部依然可以访问。但是函数内部定义变量。函数内部定义变量,在函数外部的结果为nil. local a = 111local function test() print(a) local b = a+1 return b ...
  • 这篇文章主要是介绍lua的全局变量和局部变量定义和使用情况,以及在require模块时的调用,编辑器为IDEA。 oneLua脚本: a = 5 --全局变量 local b= 5 --局部变量 function method() c = 5 --全局变量 ...
  • lua变量获取

    2019-09-14 18:52:21
    脚本中定义 var=10 c代码中 lua_pushstring(L,"var"); //把脚本中的叫var的变量名字放入stack intvar=lua_tonumber(L,-1); 代码分析 /* table of globals ...
  • 自定义类型在lua中的变量定义

    千次阅读 2011-09-03 11:06:35
    要想在lua脚本中定义一个导出类的对象,我们需要做以下活动。第一,确保需要导出类的构造函数是public;第二,在导出的类接口中(pkg文件)需要有构造函数;第三,在lua脚本中不可以像在C++中直接定
  • Lua 变量的Tips

    2016-11-16 18:00:53
    Lua定义一个局部变量local data = 101-- 在使用的时候就不用再 添加关键字 local了 data = 102print (data) ====> 102当我们再次定义一个同名的局部变量的时候,那这个就是一个新的局部变量local data = 123 ...
  • Lua变量生命周期

    万次阅读 2012-07-26 17:05:04
    Lua变量定义是很自由的,不需要像C语言那样必须指明类型,变量可以是任何“值”,比较特殊的一点是,可以把任何function赋值给变量,如: var = function()print("something") end   如果不再需要某个变量,...
  • Lua中的 默认为全局变量,局部变量使用 local 在函数 if for 中定义的也是全局变量 在语句内部输出局部变量可以、但是在外部即无法输出 总结:带有 local 的全为 局部,not local 的即为全局
  • Lua的局部变量

    千次阅读 2014-04-28 14:58:03
    Lua可以用local定义局部变量, 当
  • Lua 变量名词

    2014-10-16 19:03:58
    Lua中的函数是一阶类型值(first-class value),定义函数就象创建普通类型值一样(只不过函数类型值的数据主要是一条条指令而已),所以在函数体中仍然可以定义函数。假设函数f2定义在函数f1中,那么就称f2为f1的内嵌...
  • Lua脚本语言的变量是弱类型的,即...全局变量:顾名思义,其生命有效期是全局的,整个lua文件中都可以使用,可以在任意地方定义(函数参数除外),但有个原则,使用时必须是先定义好的,否则就是nil,请看下面的代...
  • 最近自己在尝试用lua写个单机塔防游戏,在定义枚举变量时出现了一个奇怪的问题。 原代码: ACTION_TAG = -- 动作标记 { "NEXT_COUNT_DOWN", -- 下一波次倒计时 "MONSTER_MOVE_FRAME", -- 怪物移动帧动画 ...
  • 定义变量名的方式是: Dim 变量名 再定义变量名的同时可以给变量赋值一个初始值: Dim 变量名 = 值 想要定义多个变量的话,可以这样定义: Dim 变量名=值, 变量名1 Dim 变量名=值, 变量名=值 同理...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 903
精华内容 361
关键字:

lua定义变量