• 忘掉天地
  • 仿佛也想不起自己
bingliaolongBingliaolong  2020-10-18 14:47 Aet 隐藏边栏 |   抢沙发  1 
文章评分 1 次,平均分 5.0

入门

程序段

lua -i prog

-ilua语言解释器执行完指定的程序后进入交互模式

可以在交互模式下通过dofile运行程序段:

dofile("aet.lua")

词法规范

  • 标识符由任意字母,数字和下划线组成,但不能以数字开头
  • lua对大小写敏感
  • --表单行注释
  • --[[ something ]]表多行注释

全局变量

  • 全局变量无需声明即可使用
  • 使用未经初始化的全局变量不会导致错误,结果为nil
  • nil赋值给全局变量,lua会回收该全局变量

类型和值

  • userdata类型允许把任意的C语言数据保存在lua语言变量中
  • 逻辑运算符:and or not
    • and or遵循短路求值

独立解释器

lua -e "print(math.sin(12))"

-e参数允许直接在命令行中输入代码

lua -l lib

-l参数用于加载库

解释器在处理参数前,会查找名为LUA_INIT_5_3的环境变量,如果找不到,就会再查找名为LUA_INIT的环境变量。如果这两个环境变量中的任意一个存在,并且其内容为@filename,那么解释器就会运行相应的文件;如果LUA_INIT_5_3LUA_INIT存在但不以@开头,那么解释器就会认为其保护lua代码,并会对其进行解释执行。

数值

lua 5.3版本开始,lua语言为数值格式提供了两种选择:被称为integer的64位整型和float的双精度浮点类型。

数学库

math

  • 三角函数
  • 指数函数
  • 取整函数
    • floor:向负无穷取整
    • ceil:向正无穷取整
    • modf:向0取整
  • 最大,最小函数
  • 伪随机数函数
  • 常量pihuge

表示范围

标准lua使用64个比特位来存储整型值。

对于浮点数而言,标准lua使用双精度。标准lua使用64个比特位表示所有的数值,其中11位为指数。双精度浮点数可以表示具有大致16个有效十进制的数。

精简lua使用32个比特位表示单精度浮点数,大致具有7个有效十进制位。

惯例

通过增加0.0的方法将整型值强制转换为浮点型值

-3 + 0.0

0x7fffffffff + 0.0

字符串

lua里面的字符串是不可变值的。

lua里面的其他对象(表,函数)一样,lua里的字符串也是自动内存管理的对象之一。

可以使用长度操作符#获取字符串的长度:
a = "hello"
print(#a)
该操作符返回字符串所占用的字节数

可以使用连接操作符..来进行字符串连接(如果操作数中存在数值,那么lua会先把数值转换成字符串)

双引号和单引号字符串是等价的。
唯一的区别:
使用双引号声明的字符串中出现单引号时,单引号可以不用转义;使用单引号声明的字符串中出现双引号时,双引号可以不用转义。

字符串标准库

Unicode编码

表是lua里面唯一的数据结构

lua里面的表本质上是一种辅助数组,这种数组不仅可以使用数值所谓索引,也可以使用字符串或其他类型的值作为索引(nil除外)

lua里面的表,要么是值,要么是变量,他们都是对象

表永远是匿名的,表本身和保存表的变量之间没有固定的关系。对于一个表来说,当程序中不再有指向它的引用时,垃圾收集器最终会删除这个表重用其所占的内存。

lua使用表来存储全局变量

遍历表

表标准库

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

bingliaolong
Bingliaolong 关注:0    粉丝:0 最后编辑于:2021-11-20
Everything will be better.

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享