这里我们新建一个 Main.lua 将它作为我们程序的入口,在里面测试一下我们上面的代码是否如我们所期待的那样,Main.lua 代码如下: 代码语言:javascript 复制 1require'Class'2require'SubClass'34local a=Class:new()--首先实例化父类的对象,并调用父类中的方法5a:plus()6a:test()78a=SubClass:new()--然后实例化...
1.table是Lua的一种数据结构,创建不同的数据类型。可以使用任意类型的值作数组索引,大小不固定。 2.table 相关操作 table.concat (table [, sep [, start [, end]]]): concat是concatenate(连锁,连接)的缩写. table.concat()函数列出参数中指定table的数组部分从start位置到end位置的所有元素,元素间以指定的...
Lua 是动态类型(运行时)的语言,变量不需要类型定义,只需要为变量赋值! 在Lua 中有8个基本类型分别为:nil、boolean、number、string、userdata、function、thread 和 table。 nil 一个未被赋值的变量默认为 nil,将一个变量赋值为 nil 可以删除这个变量! local test print(type(test)) -- nil print(test) -- ...
而使用.定义的函数并没有这样。 Lua 中使用:可以实现面向对象方式的调用。:只是语法糖,它同时在方法的声明与实现中增加了一个名为self的隐藏参数,这个参数就是对象本身。 2.1:定义的函数的示例 classA={}print("ClassA 地址 -->", classA)functionclassA:getob(name)print("classA:getob 中self 的地址 -...
Lua 查找一个表元素时的规则,其实就是如下 3 个步骤: 1.在表中查找,如果找到,返回该元素,找不到则继续 2.判断该表是否有元表,如果没有元表,返回 nil,有元表则继续。 3.判断元表有没有__index方法,如果__index方法为 nil,则返回 nil;如果__index方法是一个表,则重复 1、2、3;如果__index方法是一...
最近马三在工作中经常使用到了lua 中的 os.date( ) 和 os.time( )函数,不过使用的时候都是不得其解,一般都是看项目里面怎么用,然后我就模仿写一下。今天正好稍微有点空闲时间就好好地收集了一下相关资料并学习了一下,并将学习结果记录成此博客。
不同的语言提供了不同的控制,在 Lua 中,有 while 循环、for 循环和 repeat until 循环。这篇文章涵盖了 while 和repeat until 循环。由于它们的灵活性,我在一篇 单独的文章 中介绍 for 循环。 条件是由一个使用运算符的表达式来定义的,运算符是你在数学课上可能认识的符号的一个花哨的术语。Lua 中有效的...
Lua作为一种轻量级脚本语言,本身并不直接支持私有属性和私有方法的概念。然而,通过一些技巧和设计模式,我们可以在Lua中模拟私有性,以保护代码的内部实现细节,提高代码的封装性和安全性。本文将介绍Lua中私有性的实现方法,包括使用局部变量和闭包,并讨论其在实际开发中的应用场景。
在Lua中,对象的创建通常是通过表(table)来实现的。表是Lua中的一种数据结构,可以用来存储键值对。 在Lua中,可以通过以下几种方式来创建对象: 字面量方式创建对象: 字面量方式创建对象: 这种方式直接使用花括号{}创建一个表,并在其中定义键值对来表示对象的属性和值。
在Lua中,字符串的处理是相当直接和简单的。如果你想从字符串的任意位置开始截取子串,你可以使用string.sub函数。这个函数接受三个参数:原始字符串,开始位置和结束位置。如果不提供结束位置,则默认截取从开始位置到字符串末尾的所有字符。下面是一个简单的示例,展示了如何使用string.sub函数来从字符串的中间位置开始截取...