Lua学习之【2】:全局变量、关键字、类型
1、全局变量 全局变量不需声明,给一个变量赋后即创建了该全局变量,未初始化的全局变量为nil。删除一个全局变量,只需将变量赋nil 2、关键字 Lua的保留字如下:关键字不能当做标示符。Lua大小写敏感。 and break do else elseif end false for function if
1、全局变量
全局变量不需声明,给一个变量赋值后即创建了该全局变量,未初始化的全局变量为nil。删除一个全局变量,只需将变量赋值nil
2、关键字
Lua的保留字如下:关键字不能当做标示符。Lua大小写敏感。
and | break | do | else | elseif |
end | false | for | function | if |
in | local | nil | not | or |
repeat | return | then | true | until |
while |
单行注释:-- 多行注释:--[[ --]]
3、命令行方式
lua [options] [script [args]]
1)-e:直接将命令传入Lua。如:lua -e “print(math.sin(12))”,打印-0.53657391800043
2)-l:加载一个文件
3)-i:进入交互模式
4、变量基本类型
Lua是动态类型语言,变量不要类型定义,Lua有8个基本类型,分别为nil、boolean、number、string、userdata、function、
thread、table。
1)nil:一个全局变量没被赋值前默认为nil,给全局变量赋值nil可以删除该变量
2)boolean:值false和true。Lua的所有值都可作为条件,在控制结构的条件中除了false和nil为假,其他都为真。所以Lua中0和
空串都为真。
3)number:Lua中没有整数,Lua的number可以处理任何长正整数,不必担心误差。也可以在编译lua的时候使用长整型或者单
精度浮点型代替number。
4)string:字符序列,Lua是8位字节,所以字符串可以包含任何数值字符,包括嵌入的0。Lua中字符串是不可修改的。Lua自动
进行内存分配与释放,一个string可以只包含一个字母,也可以包含一本书。Lua可以高效的处理长字符串。使用单引号或双引号表示字符串。一般使用一种,除非两种引号嵌套情况。可以使用转移符\。转移序列如下:
\a bell
\b 后退
\f 换页
\n 换行
\r 回车
\t 制表
\v
\\ "\"
\" 双引号
\' 单引号
\[ 左中括号
\] 右中括号
如:print("one line\nnext line\n\"in quotes\",'in quotes' ")打印结果如下
one line
next line
“in quotes” ‘in quotes’
注意:运行时Lua会自动在string和number之间自动进行类型转换,当一个字符串使用算数运算符时,string就会被转为数字。当
string碰到数字时,就会将数字转为string。
..在Lua中是字符串连接符,但在一个数字后面写..时,必须加上空格以防止被解释错。
如果需要将string显示转为数字,可以使用函数tonumber(),如果string不是正确的数字,函数返回nil
5)function:函数是第一类值,函数可以存储在变量中,可以作为函数的参数、返回值。Lua可以调用lua或者C实现的函数。lua
使用的标准库都是C实现的,标准库包括string库,table库,I/O库,OS库,算术库,debug库
6)Userdata:userdata可以将c数据存放在Lua变量中,userdata在Lua中除了赋值和相等比较外没有预定义的操作。
7)thread:线程暂不讨论