
Lua语言入门
文章平均质量分 73
Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
繁星璀璨G
单身,求对象
展开
-
Lua语言入门 - Lua常量
在Lua中,虽然没有直接的常量关键字(如C++中的`const`),但你可以通过一些编程技巧和约定来实现类似常量的行为。以下是几种常见的方法:原创 2024-12-27 23:54:34 · 683 阅读 · 0 评论 -
Lua语言入门 - Lua 面向对象 (六)
封装通常通过将数据和方法封装在一个表中实现。我们可以通过控制表的访问权限来模拟封装,例如使用 metamethods 来限制外部访问。原创 2024-12-26 08:30:00 · 256 阅读 · 0 评论 -
Lua语言入门 - Lua 面向对象 (五)
尽管 person2 和 student2 调用了同一个 greet 方法,但由于它们的类型不同,Lua 会调用各自适合的版本。运行结果:原创 2024-12-25 08:30:00 · 233 阅读 · 0 评论 -
Lua语言入门 - Lua 面向对象 (四)
在 Lua 中,函数重写(也称为方法重写)指的是在继承过程中,子类对父类中已有方法的重新定义或替换。子类可以根据需要修改或扩展父类的方法行为。以上实例中 Square 类重写了 Rectangle 类的构造函数,从而改变了对象的初始化方式,特别是将矩形的 length 和 breadth 设为相同的值,因为正方形的特性是边长相等。接下来我们通过一个 Animal 类和一个继承自它的 Dog 类,展示如何重写方法。原创 2024-12-24 08:30:00 · 445 阅读 · 0 评论 -
Lua语言入门 - Lua 面向对象 (三)
继承是指一个对象直接使用另一对象的属性和方法,可用于扩展基础类的属性和方法。Lua 中的继承通过设置子类的元表来实现。我们可以创建一个新表,并将其元表设置为父类。以下实例 Square 类将继承 Rectangle 类的属性和方法,并在其基础上做出改动。原创 2024-12-23 08:30:00 · 328 阅读 · 0 评论 -
Lua语言入门 - Lua 面向对象 (二)
Lua 是一种轻量级的脚本语言,虽然它不像 Java 或 C++ 那样内置强大的面向对象(OO)特性,但它非常灵活,可以通过一些技巧实现面向对象编程。原创 2024-12-22 20:50:42 · 166 阅读 · 0 评论 -
Lua语言入门 - Lua 面向对象
Lua 是一种轻量级的脚本语言,虽然它不像 Java 或 C++ 那样内置强大的面向对象(OO)特性,但它非常灵活,可以通过一些技巧实现面向对象编程。原创 2024-12-21 23:08:32 · 462 阅读 · 0 评论 -
Lua语言入门 - Lua 垃圾回收
Lua 采用了自动内存管理。 这意味着你不用操心新创建的对象需要的内存如何分配出来, 也不用考虑在对象不再被使用后怎样释放它们所占用的内存。原创 2024-12-20 08:30:00 · 683 阅读 · 0 评论 -
Lua语言入门 - Lua 调试(Debug)
Lua 提供了 debug 库用于提供创建我们自定义调试器的功能。Lua 本身并未有内置的调试器,但很多开发者共享了他们的 Lua 调试器代码。原创 2024-12-19 08:30:00 · 659 阅读 · 0 评论 -
Lua语言入门 - Lua 错误处理
程序运行中错误处理是必要的,在我们进行文件操作,数据转移及web service 调用过程中都会出现不可预期的错误。如果不注重错误信息的处理,就会造成信息泄露,程序无法运行等情况。任何程序语言中,都需要错误处理。错误类型有:语法错误运行错误原创 2024-12-18 08:30:00 · 732 阅读 · 0 评论 -
Lua语言入门 - Lua 文件 I/O
Lua I/O 库用于读取和处理文件。分为简单模式(和C一样)、完全模式。简单模式(simple model)拥有一个当前输入文件和一个当前输出文件,并且提供针对这些文件相关的操作。完全模式(complete model) 使用外部的文件句柄来实现。它以一种面对对象的形式,将所有的文件操作定义为文件句柄的方法简单模式在做一些简单的文件操作时较为合适。但是在进行一些高级的文件操作的时候,简单模式就显得力不从心。例如同时读取多个文件这样的操作,使用完全模式则较为合适。原创 2024-12-17 08:30:00 · 1001 阅读 · 0 评论 -
Lua语言入门 - Lua 协同程序(coroutine) (二)
线程与协同程序的主要区别在于,一个具有多个线程的程序可以同时运行几个线程,而协同程序却需要彼此协作的运行。在任一指定时刻只有一个协同程序在运行,并且这个正在运行的协同程序只有在明确的被要求挂起的时候才会被挂起。协同程序有点类似同步的多线程,在等待同一个线程锁的几个线程有点类似协同。原创 2024-12-16 08:30:00 · 699 阅读 · 0 评论 -
Lua语言入门 - Lua 协同程序(coroutine) (一)
Lua 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局部变量,独立的指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。协同程序可以理解为一种特殊的线程,可以暂停和恢复其执行,从而允许非抢占式的多任务处理。协同是非常强大的功能,但是用起来也很复杂。原创 2024-12-15 08:30:00 · 713 阅读 · 0 评论 -
Lua语言入门 - Lua 元表(Metatable) (二)
在 Lua table 中我们可以访问对应的 key 来得到 value 值,但是却无法对两个 table 进行操作(比如相加)。因此 Lua 提供了元表(Metatable),允许我们改变 table 的行为,每个行为关联了对应的元方法。原创 2024-12-14 08:30:00 · 286 阅读 · 0 评论 -
Lua语言入门 - Lua 元表(Metatable) (一)
在 Lua table 中我们可以访问对应的 key 来得到 value 值,但是却无法对两个 table 进行操作(比如相加)。因此 Lua 提供了元表(Metatable),允许我们改变 table 的行为,每个行为关联了对应的元方法。例如,使用元表我们可以定义 Lua 如何计算两个 table 的相加操作 a+b。当 Lua 试图对两个表进行相加时,先检查两者之一是否有元表,之后检查是否有一个叫 __add 的字段,若找到,则调用对应的值。 __add 等即时字段,其对应的值(往往是一个函原创 2024-12-13 08:30:00 · 668 阅读 · 0 评论 -
Lua语言入门 - Lua 模块与包
模块类似于一个封装库,从 Lua 5.1 开始,Lua 加入了标准的模块管理机制,可以把一些公用的代码放在一个文件里,以 API 接口的形式在其他地方调用,有利于代码的重用和降低代码耦合度。Lua 的模块是由变量、函数等已知元素组成的 table,因此创建一个模块很简单,就是创建一个 table,然后把需要导出的常量、函数放入其中,最后返回这个 table 就行。原创 2024-12-12 08:30:00 · 730 阅读 · 0 评论 -
Lua语言入门 - Lua table(表) (三)
指定table中所有正数key值中最大的key值. 如果不存在key值为正数的元素, 则返回0。(Lua5.2之后该方法已经不存在了,本文使用了自定义函数实现)对给定的table进行升序排序。原创 2024-12-11 08:30:00 · 422 阅读 · 0 评论 -
Lua语言入门 - Lua table(表) (二)
concat是concatenate(连锁, 连接)的缩写. table.concat()函数列出参数中指定table的数组部分从start位置到end位置的所有元素, 元素间以指定的分隔符(sep)隔开。在table的数组部分指定位置(pos)插入值为value的一个元素. pos参数可选, 默认为数组部分末尾.原创 2024-12-10 08:30:00 · 286 阅读 · 0 评论 -
Lua语言入门 - Lua table(表) (一)
table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数组、字典等。Lua table 使用关联型数组,你可以用任意类型的值来作数组的索引,但这个值不能是 nil。Lua table 是不固定大小的,你可以根据自己需要进行扩容。Lua也是通过table来解决模块(module)、包(package)和对象(Object)的。 例如string.format表示使用"format"来索引table string。原创 2024-12-09 08:30:00 · 242 阅读 · 0 评论 -
Lua语言入门 - Lua 迭代器
迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。在 Lua 中迭代器是一种支持指针类型的结构,它可以遍历集合的每一个元素。原创 2024-12-08 08:30:00 · 647 阅读 · 0 评论 -
Lua语言入门 - Lua 数组
数组,就是相同数据类型的元素按一定顺序排列的集合,可以是一维数组和多维数组。在 Lua 中,数组不是一种特定的数据类型,而是一种用来存储一组值的数据结构。实际上,Lua 中并没有专门的数组类型,而是使用一种被称为"table"的数据结构来实现数组的功能。Lua 数组的索引键值可以使用整数表示,数组的大小不是固定的。在 Lua 索引值是以1为起始,但你也可以指定 0 开始。原创 2024-12-07 19:26:13 · 596 阅读 · 0 评论 -
Lua语言入门 - 字符串 (二)
字符串或串(String)是由数字、字母、下划线组成的一串字符。在 Lua 中,字符串是一种基本的数据类型,用于存储文本数据。Lua 中的字符串可以包含任意字符,包括字母、数字、符号、空格以及其他特殊字符。原创 2024-12-06 08:30:00 · 644 阅读 · 0 评论 -
Lua语言入门 - 字符串 (一)
字符串或串(String)是由数字、字母、下划线组成的一串字符。在 Lua 中,字符串是一种基本的数据类型,用于存储文本数据。Lua 中的字符串可以包含任意字符,包括字母、数字、符号、空格以及其他特殊字符。原创 2024-12-05 08:30:00 · 966 阅读 · 0 评论 -
Lua语言入门 - 运算符
运算符是一个特殊的符号,用于告诉解释器执行特定的数学或逻辑运算。Lua提供了以下几种运算符类型:算术运算符关系运算符逻辑运算符其他运算符原创 2024-12-04 08:30:00 · 1092 阅读 · 0 评论 -
Lua语言入门 - 函数
在Lua中,函数是对语句和表达式进行抽象的主要方法。既可以用来处理一些特殊的工作,也可以用来计算一些值。Lua 提供了许多的内建函数,你可以很方便的在程序中调用它们,如print()函数可以将传入的参数打印在控制台上。Lua 函数主要有两种用途:1.完成指定的任务,这种情况下函数作为调用语句使用;2.计算并返回值,这种情况下函数作为赋值语句的表达式使用。原创 2024-12-03 08:30:00 · 1804 阅读 · 0 评论 -
Lua语言入门 - 流程控制
Lua 编程语言流程控制语句通过程序设定一个或多个条件语句来设定。在条件为 true 时执行指定程序代码,在条件为 false 时执行其他指定代码。原创 2024-12-02 08:30:00 · 878 阅读 · 0 评论 -
Lua语言入门 - Lua 循环
很多情况下我们需要做一些有规律性的重复操作,因此在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件。循环结构是在一定条件下反复执行某段程序的流程结构,被反复执行的程序被称为循环体。循环语句是由循环体及循环的终止条件两部分组成的。原创 2024-12-01 08:30:00 · 803 阅读 · 0 评论 -
Lua语言入门 - Lua 变量
变量在使用前,需要在代码中进行声明,即创建该变量。编译程序执行代码之前编译器需要知道如何给语句变量开辟存储区,用于存储变量的值。Lua 变量有三种类型:全局变量、局部变量、表中的域。Lua 中的变量全是全局变量,哪怕是语句块或是函数里,除非用 local 显式声明为局部变量。局部变量的作用域为从声明位置开始到所在语句块结束。变量的默认值均为 nil。原创 2024-11-30 17:23:16 · 418 阅读 · 0 评论 -
Lua语言入门 - 数据类型
Lua 是动态类型语言,变量不要类型定义,只需要为变量赋值。 值可以存储在变量中,作为参数传递或结果返回。Lua 中有 8 个基本类型分别为:nil、boolean、number、string、userdata、function、thread 和 table。原创 2024-11-29 08:30:00 · 955 阅读 · 0 评论 -
lua语言入门 - 基本语法
lua语言基本语法-交互式编程,脚本式编程原创 2024-11-28 08:30:00 · 528 阅读 · 0 评论 -
Lua 语言入门
Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。原创 2024-11-27 08:30:00 · 283 阅读 · 0 评论