首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Lua菜鸟①】初识Lua

简介 Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。...可扩展: Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。...独立应用脚本 Web 应用脚本 扩展和数据库插件如:MySQL Proxy 和 MySQL WorkBench 安全系统,如入侵检测系统 以下使用window环境,适合我这样的菜鸟: 第一个Lua程序,...环境配置 大家可以在Lua的官网下载window系统所需要的编译器,然后配置环境即可 将lua命令加入到path中即可,这样就可以利用VS Code直接运行 ? 然后就是给世界打招呼了 ?...菜鸟终于可以写Lua了,明天继续!

2.9K90
您找到你想要的搜索结果了吗?
是的
没有找到

Lua语言_lua基本语法

实例: 4.4 流程控制 (1)if语句 Lua if 语句 由一个布尔表达式作为条件判断,其后紧跟其他语句组成。...语法: if(布尔表达式) then --[ 在布尔表达式为 true 时执行的语句 --] end 实例: (2)if…else语句 Lua if 语句可以与 else 语句搭配使用, 在 if...)while循环[满足条件就循环 ] Lua 编程语言中 while 循环语句在判断条件为 true 时会重复执行循环体语句。...编程语言中 for 循环语句可以重复执行指定语句,重复次数可在 for 语句中控制。...Lua 编程语言中 repeat…until 循环语句不同于 for 和 while循环,for 和 while 循环的条件语句在当前循环执行开始时判断,而 repeat…until 循环的条件语句在当前循环结束后判断

3.1K20

lua

游戏里面用lua来热更新的 redis的默认方法也是lua(我觉得是因为和nosql很搭) 变量 全局变量直接使用的时候为nil 数组下标从0开始(不推荐)a = {[0]="123","32",..."23"}; 支持多返回值,多个同时赋值,只需要一个时候使用哑元_ 尽量避免一个下划线开头+大写字母 ---[[可以注销掉块注释 type函数永远返回一个字符串 lua将false和nil视为假,将0和空字符串视为真...LUA对于小于1014的数字用双精度没有四舍五入的浮点误差,合法的数字写法:4,0.4,4.58e-3,0.3e12,5e+20 Lua的字符串是只读的,\表达数值转义,[[ ]],[===...(Lua4.0 以前在度数下工作。)你可以使用 deg 和 rad 函数在度和弧度之间转换。...->OnInitOK()->CtrlManager.Init() Define.Lua:"xxx=xxxCtrl" GameManager.Lua:ctrl:Awake() LayerPanel

2.2K20

Lua连续教程之Lua反射

如果foo是一个普通的Lua函数,则为“Lua”;如果是一个C函数,则为“C”;如果是一个Lua语言代码段的主要部分,则为“main”。...请注意,由于函数在Lua语言中是第一类值,因此函数既可以没有名称也可以有多个名称。Lua语言会通过检查调用该函数的代码来看函数是如何被调用的,进而尝试找到该函数的名称。...Lua语言按局部变量在函数中的出现顺序对它们进行编号,但编号只限于在函数当前作用域中活跃的变量。...访问非局部变量 测试库还提供了函数getupvalue,该函数允许我们访问一个被Lua函数所使用的非局部变量。...这是因为,在函数F处于活动状态时,Lua语言可以通过分析正在调用函数F的代码来找出函数F的名称。

2.4K10

Lua连续教程之Lua线程和状态

例如,考虑如下的语句: L1 = lua_newthread(L); 执行上述代码后,我们就有了两个线程L1和L,它们都在内部引用了相同的Lua状态。每个线程都有其自己的栈。...例如,考虑如下的代码: lua_State *L1 = lua_newthread(L); lua_pop(L,1); lua_pushstring(L1,"hello"); 调用lua_pushstring...(L1,1,1); lua_xmove(L1,L,1); 函数lua_xmove可以在同一个Lua状态的两个栈之间移动Lua值。...因此,我们需要用到函数lua_resume: int lua_resume (lua_State *L,lua_State *from, int narg); 要启动一个协程,我们可以像使用lua_pcall...要交出控制权,C语言函数必须调用如下的函数: int lua_yield (lua_State *L, int nresults, int ctx, lua_CFunction k); 在返回语句中我们应该始终使用这个函数

2.7K20

Lua连续教程之Lua垃圾收集

除非我们告诉Lua语言数组对该对象的引用不应该阻碍对此对象的回收,否则Lua语言本身是无从知晓的。 弱引用表就是这样一个用来告知Lua语言一个引用不应阻止一个对象回收的机制。...由于Lua语言在析构对象上设置了标记,每一个对象的析构器都会精确地运行一次。如果一个对象直到程序运行结束还没有被回收,那么Lua语言就会在整个Lua虚拟机关闭后调用它的析构器。...垃圾收集器 一直到Lua5.0,Lua语言使用的都是一个简单的标记-清除式垃圾收集器。...然后,Lua语言遍历弱引用表并从中移除键或值未被标记的元素。 清理阶段遍历所有对象。如果一个对象没有被标记为活跃,Lua语言就将其回收,否则,Lua语言清理标记,然后准备进行下一个清理周期。...Lua5.2引入了紧急垃圾收集。当内存分配失败时,Lua语言会强制进行一次完整的垃圾收集,然后再次尝试分配。

1.5K10

lua实例教程_lua教程网

目录 Lua配置、安装、与运行 Lua编译与调试环境搭建 Lua基本语法 1.交互式编程 2.脚本式编程 Lua中的数据类型 1.数据类型展示 2.注意事项 Lua中的变量与函数 全局变量...Lua处理从C#获得的数组、字典、结构体等 方式1迭代器遍历以及转化为table后循环 方式2类似C#的调用以及相关注意事项 …待续(持续更新中) 参考与引用 Lua配置、安装、与运行 1.进入Lua...官网:http://www.lua.org——下载Lua 2.下载文件【 lua-5.3.4_Win64bin.zip 】 3.创建一个空文件夹“Lua”并在其中解压【 lua-5.3.4_Win64bin.zip...Lua 交互式编程模式可以通过命令 lua -i 或 lua 来启用: 2.脚本式编程 我们可以将 Lua 程序代码保存到一个以 lua 结尾的文件,并执行,该模式称为脚本式编程,如我们将如下代码存储在名为...函数实现如下: // 生成一个C闭包并压入栈顶, n表示当前栈顶有多少个upvalue要与闭包关联 LUA_API void lua_pushcclosure (lua_State *L, lua_CFunction

1.9K20

Lua 基础

Lua 变量 Lua 变量有三种类型:全局变量、局部变量、表中的域。 Lua 中的变量全是全局变量,那怕是语句块或是函数里,除非用 local 显式声明为局部变量。..."world" t.n = t.n + 1 --Lua可以对多个变量同时赋值,变量列表和值列表的各个元素用逗号分开,赋值语句右边的值会依次赋给左边的变量。...t[i] t.i -- 当索引为字符串类型时的一种简化写法 Lua 循环 Lua 语言提供了以下几种循环处理方式: 循环类型 描述 while 循环 在条件为 true 时,让程序重复地执行某些语句...repeat...until 循环 repeat statements until( condition ) Lua 流程控制 Lua 提供了以下控制结构语句语句 描述 if 语句 if 语句...if...else 语句 if 语句 可以与 else 语句搭配使用, 在 if 条件表达式为 false 时执行 else 语句代码。

2.1K00

Lua连续教程之Lua位和字节

Lua语言处理二进制数据的方式与处理文本的方式类似。Lua语言中的字符串可以包含热议字节,并且几乎所有能够处理字符串的库函数也能处理任意字节。我们甚至可以对二进制数据进行模式匹配。...因此,在精简Lua中,这种区别可能会很重要。...Lua语言不显示支持无符号整型数。不过尽管如此,只要稍加注意,在Lua语言中处理无符号整型数并不难。...打包和解包二进制数据 Lua5.3还引入了一个在二进制数和基本类型值之间进行转换的函数。...可以使用如下的命令调用该程序: lua prog.lua file.dos file.unix 再举一个例子,一下的程序输出了一个二进制文件中的所有字符: local f = assert(io.open

1.6K20

Lua编程技巧

简单翻译了一篇编程技巧,虽然内容上是关于 Lua 的,但实际上大部分技巧都是通用的(适用于其他语言)....最佳实践 一行一语句 程序员为了编写更少的代码行数,往往会在一行代码里塞入很多语句,当然,这么做确实让代码变短了,但同时也让代码变得更难以使用了:一行包含许多语句(操作)的代码,往往难以阅读、维护和优化...- y2 local dsq = dx^2 + dy^2 local d = math.sqrt(dsq) local nx, ny = dx/d, dy/d 合并函数调用 和许多解释型语言一样, Lua...并不支持函数声明,所以变更函数名字或者函数所需参数个数的行为,在 Lua 中是个危险且费时的操作:每当你修改某个特定函数的时候,你必须手动对你代码中所有调用该函数的地方进行同步修改,这个过程极易产生...Bug,这也是为什么我们要尽量避免重复的函数调用.当我们与第三方 API 或者 Lua 模块交互时,合并函数调用会变得更为重要,因为更少的函数调用会让我们在 移植新平台 或者 升级 API 时更加简单.

56530

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券