
lua
文章平均质量分 91
lanhuazui10
这个作者很懒,什么都没留下…
展开
-
lua中的循环语句
语法:dostatementsend实际测试,condition两侧的括号带不带都行的可以是一条或多条语句,可以是任意表达式,在为 true 时执行循环体语句。流程图如下:在以上流程图中我们可以看出在为 false 时会跳过当前循环并开始脚本执行紧接着的语句。执行以上代码,输出结果如下:a 的值为: 10a 的值为: 11a 的值为: 12a 的值为: 13a 的值为: 14a 的值为: 15a 的值为: 16a 的值为: 17。转载 2025-05-08 21:14:48 · 47 阅读 · 0 评论 -
Lua中的点、冒号与self
如果函数原来的第一个参数的意义要求不是要调用者将本身调用传入则函数执行出错,因此这种情况下的点定义的函数并不能用冒号来调用,虽然也能调用到该函数但结果却是错的。如果冒号定义的函数如果用点来调用时,需要传入的参数个数自动增加一个,第一个参数要传递对象本身,函数内部若有用到self则self表示的便是函数传入的第一个参数。如果冒号调用以点定义的函数时,函数的参数的意义发生了变化,第一个参数强制变为了表示自身的变量(此时的p1等同于self)。第一个参数必须传入本身,否则最后函数执行结果会是错误的。转载 2025-05-08 20:58:04 · 45 阅读 · 0 评论 -
Lua 协同程序(coroutine)
Lua 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局部变量,独立的指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。协同程序可以理解为一种特殊的线程,可以暂停和恢复其执行,从而允许非抢占式的多任务处理。协同是非常强大的功能,但是用起来也很复杂。转载 2025-05-06 19:40:10 · 48 阅读 · 0 评论 -
Lua 面向对象
面向对象编程(Object Oriented Programming,OOP)是一种非常流行的计算机编程架构,通过创建和操作对象来设计应用程序。Lua 是一种轻量级的脚本语言,虽然它不像 Java 或 C++ 那样内置强大的面向对象(OO)特性,但它非常灵活,可以通过一些技巧实现面向对象编程。转载 2025-05-05 23:31:15 · 44 阅读 · 0 评论 -
Lua 调试(Debug)
Lua 提供了 debug 库用于提供创建我们自定义调试器的功能。Lua 本身并未有内置的调试器,但很多开发者共享了他们的 Lua 调试器代码。进入一个用户交互模式,运行用户输入的每个字符串。使用简单的命令以及其它调试设置,用户可以检阅全局变量和局部变量, 改变变量的值,计算一些表达式,等等。输入一行仅包含 cont 的字符串将结束这个函数, 这样调用者就可以继续向下运行。返回对象的环境变量。返回三个表示线程钩子设置的值: 当前钩子函数,当前钩子掩码,当前钩子计数返回关于一个函数信息的表。转载 2025-05-05 23:28:20 · 48 阅读 · 0 评论 -
Lua 错误处理
程序运行中错误处理是必要的,在我们进行文件操作,数据转移及web service 调用过程中都会出现不可预期的错误。如果不注重错误信息的处理,就会造成信息泄露,程序无法运行等情况。任何程序语言中,都需要错误处理。转载 2025-05-05 23:22:09 · 66 阅读 · 0 评论 -
Lua 文件 I/O
分为简单模式(和C一样)、完全模式。将所有的文件操作定义为文件句柄的方法简单模式在做一些简单的文件操作时较为合适。但是在进行一些高级的文件操作的时候,简单模式就显得力不从心。例如同时读取多个文件这样的操作,使用完全模式则较为合适。打开文件操作语句如下:号表示对文件既可以读也可以写。转载 2025-05-05 23:02:43 · 29 阅读 · 0 评论 -
Lua 元表(Metatable)
在 Lua table 中我们可以访问对应的 key 来得到 value 值,但是却无法对两个 table 进行操作(比如相加)。因此。例如,使用元表我们可以定义 Lua 如何计算两个 table 的相加操作 a+b。当 Lua 试图对两个表进行相加时,先检查两者之一是否有元表,之后检查是否有一个叫 __add 的字段,若找到,则调用对应的值。转载 2025-05-05 22:38:51 · 31 阅读 · 0 评论 -
如何打印出lua里table的内容
有时,你可能需要根据特定的需求来自定义打印函数,例如,将输出重定向到文件或图形界面。-- 处理每个参数end-- 实现自定义的打印逻辑end在这个自定义函中,你可以根据需要处理每个参数,并实现自己的打印逻辑。在 Lua 中,除了最常用的print函数之外,没有内置的其他打印函数。但是,你可以使用其他方法来实现类似打印的功能,或者创建自定义的打印函数。io.write函数io.write函数用于向标准输出写入数据,但它不会像print那样在每次调用后自动添加换行符。\n")结合print或。转载 2025-05-05 21:17:36 · 104 阅读 · 0 评论 -
lua require加载机制详解:路径与loader解析
加载器函数负责执行模块的初始化和加载逻辑,通常会返回一个值,loader返回的值会被存储在`package.loaded[modname]`中,作为已加载模块的引用。而require所使用的路径与传统的路径不同,require采用的路径是一连串的模式,其中每项都是一种将模块名转换为文件名的方式。这表示程序会首先尝试加载当前目录下的`.lua`和`.lc`文件,然后是`/usr/local`目录下的子目录及其`init.lua`文件。首先,要加载一个模块,就必须的知道这个模块在哪里。转载 2025-05-05 21:11:07 · 66 阅读 · 0 评论 -
Lua 模块与包
模块类似于一个封装库,从 Lua 5.1 开始,Lua 加入了标准的模块管理机制,可以把一些公用的代码放在一个文件里,以 API 接口的形式在其他地方调用,有利于代码的重用和降低代码耦合度。Lua 的模块是由变量、函数等已知元素组成的 table。因此创建一个模块很简单,就是创建一个 table,然后把需要导出的常量、函数放入其中,最后返回这个 table 就行。以下为创建自定义模块 module.lua,文件代码格式如下:由上可知,模块的结构就是一个 table 的结构,因此可以像操作调用 table 里转载 2025-05-05 19:45:29 · 27 阅读 · 0 评论 -
Lua table(表)
table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数组和字典等。Lua table 使用关联型数组,可以用任意类型的值来作数组的索引,比如数字和字符串等,但这个值不能是 nil。Lua table 是不固定大小的,你可以根据自己需要进行扩容。Lua也是通过table来解决模块(module)、包(package)和对象(Object)的。 例如string.format表示使用"format"来索引table string。构造器是创建和初始化表的表达式。表是Lua特有的功能强大的东转载 2025-05-05 19:22:18 · 51 阅读 · 0 评论 -
Lua 迭代器
迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。在 Lua 中迭代器是一种支持指针类型的结构,它可以遍历集合的每一个元素。转载 2025-05-05 18:49:08 · 33 阅读 · 0 评论 -
Lua 数组
数组,就是相同数据类型的元素按一定顺序排列的集合,可以是一维数组和多维数组。在 Lua 中,数组不是一种特定的数据类型,而是一种用来存储一组值的数据结构。实际上,Lua 中并没有专门的数组类型,而是使用一种被称为的数据结构来实现数组的功能。转载 2025-05-05 15:47:47 · 38 阅读 · 0 评论 -
lua 字符串
print("\n第三次截取", string.format("%q", third_sub))转载 2025-05-05 15:25:42 · 33 阅读 · 0 评论 -
Lua 运算符
运算符是一个特殊的符号,用于告诉解释器执行特定的数学或逻辑运算。转载 2025-05-05 13:52:56 · 25 阅读 · 0 评论 -
Lua 数据类型和运算符优先级
userdata 是一种用户自定义数据,用于表示一种由应用程序或 C/C++ 语言库所创建的类型,可以将任意 C/C++ 的任意数据类型的数据(通常是 struct 和 指针)存储到 Lua 变量中调用。Lua 数据类型 | 菜鸟教程。转载 2025-05-05 11:41:02 · 29 阅读 · 0 评论