Lua的整型和浮点型的转换
整型->浮点型:3+0.0
要注意的是浮点的整数范围只有2^53,假如超过的话会被当做近似值,导致精度丢失
浮点型->整型:5.0 | 0
需要注意的是,最好确保转换值是整型,否则会导致报错
函数式转换为整型:math.tointeger(Key)
一般用于判断一个数是否能被转换为整数,假如不行会返回nil
Lua的浮点型和整型
lua中的浮点被称为float,但是需要注意这里的float是双精度,此外除非在必要的时候,否则大部分时候可以忽略整型和浮点的区别。两个数据类型的比特位都是64位,区别是浮点型中11位是指数位。
(PS:在5.2的整数支持2^53,而在5.3则支持2^63)
lua支持十六进制浮点型,以消毒部分和p开头的指数部分组成。
Lua的算术运算和关系运算符
加减乘除没差,但是除法结果必是浮点型,所以不存在整除。如果需要整除要使用floor除法运算符‘//’,假如其中一个是浮点则结果为浮点。
此外有‘%’,可以使用math.pi - math.pi%0.01来去除不要的小数点后几位
< > <= >= == ~=
Lua的数学库
数学库为math,里面有三角函数cos、sin、tan等,指数函数、取整函数最大和最小函数和随机函数
random默认[0,1),n参则[1,n],n、z参则[n,z]
random的randomseed用来设置种子,可以使用os.time()来随机化
取整有floor、ceil和modf,floor向少取,ceil向多取,modf向0取
Lua的三目运算和逻辑运算符
a > b and a or b 选出a和b中比较大的那个
a and b 当a为假返回a,否则返回b
a or b 当a为真返回a,否则返回b
Lua的Bool和nil
lua中nil和false都是表示不为真,此外变量如果赋值为nil则会被lua的回收机制回收
Lua的注释
使用“--”单行注释
使用"--[[""--]]"来进行多行注释
同时对于已经有注释的代码,可以使用--[==[和]==]这样的方式来注释,lua只有在检测到同样等号的结束符号才会结束注释
Lua的解释器
lua的解释器可以直接在官网下载,网址如下:
http://www.lua.org/download.html
点击二进制文件下载最新版即可,需要注意的是,假如是windows系统的话,除了要下载bin包外还需要下载lib包,然后将两个包的文件放在同个目录下。
bin和lib会有一个文件重复,选中留着lib包的文件。然后将文件目录加入系统path目录中就可使用了。
Lua优先级
^
一元运算符(- # ~ not)
* / // %
+ -
..
<< >>
&
~
|
< > <= >= ~= ==
and
or
Lua的字符串
不可变,如有需要会另外创建,可以用’#‘来获得具体长度,长度因为编码不同可能不一样。
lua的字符使用8bit存储,不关心编码问题,但是有提供一些编码工具。
常用的转义字符都可以使用,此外还有一个额外的’/z‘来跳过读取空白字符,直到出现下一个非白字符
字符串在参与运算时候,lua会尝试将其转换为浮点数,如果希望转为整型可以用方法tonumber()