1. lua入门

Lua是一种动态类型语言,变量无须声明,全局变量赋值后自动创建。数据类型包括nil、boolean、number、string、function、userdata和table。命令行下,lua-l<name>可加载库,dofile()用于运行脚本。环境配置通过LUA_INIT变量实现。解释器创建arg表存储命令行参数,支持变长参数和多行注释。
摘要由CSDN通过智能技术生成

数据类型

  1. lua是动态类型语言,每个值带有自身的类型信息。

  2. 默认情况下,变量总认为是全局的。

  3. 全局变量不需要声明,给一个变量赋值后即创建了这个全局变量,访问一个没有初始化的全局变量也不会出错,只不过得到的结果是nil

  4. 如果想要删除一个全局变量,只需要将它赋值为nil。当且仅当一个变量不等于nil时,这个变量即存在。

  5. 使用type函数来获取一个值对应的类型名词。

  6. 在逻辑判断时,boolean类型的值efalsenil都视为假,其他都视为真。

数据类型描述
nil只有nil属于该类,表示一个无效值(在条件表达式中相当于false)
boolean包含两个值:false和true。
number相当于C语言的double,双精度浮点数
string由一对单引号或双引号表示的字符串
function由C语言或Lua编写的函数
userdata任意存储在变量中的C数据结构
thread表示执行的独立线路,用于协同程序
tabletable其实是一个关联数组,数组的索引可以是数字、字符串或表类型。table的创建是通过构造表达式来完成的,最简单构造表达式是{},用来创建一个空表

nil在做比较时应该加上引号,因为type(x) == nil中,type(x)返回的实际是"nil"字符串,是一个string类型。

type(type(x)) == string

命令解释器

加载库

lua -l <name>可以在命令交互模式加载一个库。
命令交互模式下,使用dofile("1.lua")可以加载1.lua作为库,使用其中的函数变量等。

环境配置

解释器造处理参数前,会查找名为LUA_INIT_5_3的环境变量(应该是视lua版本来定),如果找不到,就会再查找名为LUA_INIT的环境变量。

如果这两个变量中的任意一个存在,并且其内容为@filename,那么解释器就会运行相应的文件;
如果变量存在但不是以@开头,那么解释器会认为其包含lua的代码,并会对其进行解释执行。

这样的方法可以完整地配置lua。因而LUA_INIT使得我们可以灵活地配置独立解释器。

例如,可以预先加载程序包、修改路径、定义自定义函数、对函数进行重命名或删除函数,等等。

$ lua script a b c

解释器在运行代码前会创建一个名为arg的表,其中存储了所有的命令行参数。索引0中保存的内容为脚本名,索引1位第一个参数:

arg[-3] = "lua"
arg[-2] = "-3"
arg[-1] = "sin=math.sin"
arg[0] = "script"
arg[1] = "a"
arg[2] = "b"

在脚本之前的选项则位于负数索引上。

lua支持变长参数,在脚本文件中,通过...表示传递给脚本的所有参数。

注释

单行注释用 --

a = 100
-- a

多行注释用--[[--]]


--[[
ok = "ok"
--]]

no = "no"

这里一个小技巧就是在--[[前多加一个-,会变成---[[,就会开启被多行注释的代码。

参考资料

参考书籍:lua程序设计(第4版), Roberto lerusalimschy 梅隆魁译

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

barbyQAQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值