Lua
本文为Lua语法教程
董哥的黑板报
90后程序员!
展开
-
Lua:01---Lua语言介绍、运行Lua程序(lua解释器)
一、Lua语言介绍Lua语言从一开始就被设计为能与C/C++及其他常用语言开发的软件集成在一起使用的语言,这种设计带来了非常多的好处: 一方面, Lua语言不需要在性能、与三方软件交互等C语言已经非常完善的方面重复“造轮子”,可以直接依赖C语言实现上述特性,因而Lua语言非常精简 另一方面,通过引入安全的运行时环境、自动内存管理、良好的字符串 处理能力和可变长的多种数据类型, Lua 语言弥补了C语言在非面向硬件的高级抽象能力、 动态数据结构、鲁棒性、调试能力等方面的不足 Lua语言强大的原创 2020-08-11 10:34:43 · 13313 阅读 · 0 评论 -
Lua:02---Lua语法命名规范、;号的使用、Lua注释、Lua全局变量/局部变量、do-end代码块
一、Lua语法命名规范Lua语言对大小写是敏感的标识符命名规则Lua语言中的标识符(或名称)可以由:任意字母、数字、下划线组成,但是不能以数字开头 例如下面都是符合规则的命名ii10_ijaSomeWthaLongName其中以“下划线+大写字母”组成的标识符通常被Lua语言用作特殊用途,应该避免使用。例如:_VERSIONLua的保留字下面是Lua语言的保留字,不能用作标识符二、分号的使用在Lua语言中,分号的使用是可选的 例如,下面的使用都原创 2020-08-11 10:59:52 · 3712 阅读 · 0 评论 -
Lua:03---Lua数据类型(附加逻辑运算符)
一、Lua数据类型汇总Lua语言是一种动态类型语言,在这种语言中没有类型定义,每个值都带有其自身的类型信息 Lua有8种基本类型: nil:空 boolean:布尔 number:数值 string:字符串 userdata:用户数据 function:函数 thread:线程 table:表 使用type()函数可以获取一个值对应的类型名称,该函数的返回值为string类型:type(nil)type(true)type(10.4*3)type("Hel原创 2020-08-11 13:16:00 · 848 阅读 · 0 评论 -
Lua:04---number数值类型:interger、float、算术运算/关系运算/运算符优先级、math数学库、interger与float的转换
一、Lua数值类型发展在Lua 5.2及之前的版本中,所有的数值都以双精度浮点格式表示 从Lua 5.3版本开始,Lua语言为数值格式提供了两种选择: 整型值:称为interger的64位整型 浮点型值:称为float的双精度浮点类型 二、数值常量表示下面是一些合理的数值常量表示:40.4其中还可以使用科学记数法: 格式为一个可选的十进制部分外加一个可选的十进制指数部分) 科学记数法最终是一个浮点数 4.57e-30.3e125E+20三、类原创 2020-08-11 16:20:26 · 8691 阅读 · 1 评论 -
Lua:05---string字符串类型:lua字符串的使用、字符串标准库、Unicode标准库
一、Lua字符串介绍Lua语言中的字符串是一串字节组成的序列。在Lua语言中,字符使用8个比特位来存储 Lua语言中的字符串可以存储包括空字符在内的所有数值代码,这意味着我们可以在字符串中存储任意的二进制数据 我们也可以使用任意一种编码方式(UTF-8、UTF-16等)来存储Unicode字符串(在文章下面会详细介绍)二、字符串常量我们可以使用一对双引号或者单引号来声明字符串常量。例如:a = "a line"ab = 'another line'b双引号和单引号声明字符串是等原创 2020-08-11 23:24:24 · 3475 阅读 · 0 评论 -
Lua:06---table表类型:表索引、表构造器、数组、序列、table标准库
一、表类型介绍表(Table)是Lua语言中最主要(事实上也是唯一的)和强大的数据结构 使用表,Lua语言可以以一种简单、统一且高效的方式表示数组、集合、记录和其他许多数据结构。也可以使用表来表示包(package)和其他对象(例如当调用math.sin时,对于Lua来说,实际上是以“字符串sin”为键检索“表math”) Lua语言的表本质上是一种辅助数组,这种数组不仅可以使用数值作为索引,也可以使用字符串或者其他任意类型的值作为索引(nil除外)基本使用可以使用构造器表达式来创建表。例如原创 2020-08-13 22:07:42 · 4397 阅读 · 0 评论 -
Lua:07---Lua函数:函数语法、多返回值、可变长参数(table.pack()、select())、table.unpack()、尾调用
一、函数的定义Lua中函数定义的常见语法格式为:function 函数名(函数参数) -- 函数体end例如,下面是一个对序列'a'的元素进行求和的函数function add(a) local sum = 0 for i = 1, #a do sum = sum + a[i] end return sumend二、函数调用的注意事项是否需要带"圆括号"一般情况下,函数调用时需要带上圆括号(不论函数是否带有参数)。原创 2020-08-16 13:49:58 · 10307 阅读 · 0 评论 -
Lua:08---I/O库:input()、output()、write()、read()、lines()、open()、tmpfile()、flush()、setvbuf()、seek()、pope
一、前言由于Lua语言强调可移植性和嵌入型,所以Lua本身并没有提供太多与外部交互的机制。在真实的Lua程序中,从图形、数据库到网络的访问等大多数I/O操作,要么由宿主机实现,要么通过不包括在发行版中的外部库实现 单就Lua语言而言,只提供了ISO C语言标准支持的功能,即基本的文件操作等 对于文件操作来说,I/O库提供了两种不同的模型: 简单I/O模型 完整I/O模型 一、简单I/O模型简单I/O模型虚拟了一个当前输入流和一个当前输出流,其I/O操作是通过这些流实现的 I/O库把当原创 2020-08-19 13:17:30 · 3717 阅读 · 0 评论 -
Lua:09---OS库:rename()、remove()、exit()、getenv()、execute()
一、os.rename()该函数用于文件重命名二、os.remove()该函数用于移除(删除)文件三、os.exit()该函数用于终止程序的执行 参数: 参数1:可选的,表示该程序的返回状态,可以是一个数值(0表示执行成功)或者一个布尔值(true表示执行成功) 参数2:可选的,当值为true时会关闭LUa状态并调用所有析构器释放所占用的所有内存(这种终止方式通常是非必要的,因为大多数操作系统会在进程退出时释放其占用的所有资源) 四、os.getenv()该函数用于获取某个环原创 2020-08-19 13:45:08 · 2956 阅读 · 0 评论