Lua学习之【2】:全局变量、关键字、类型

来源:互联网 发布:美苏军备竞赛原因知乎 编辑:程序博客网 时间:2024/06/07 11:37

1、全局变量

全局变量不需声明,给一个变量赋值后即创建了该全局变量,未初始化的全局变量为nil。删除一个全局变量,只需将变量赋值nil

2、关键字

Lua的保留字如下:关键字不能当做标示符。Lua大小写敏感。

andbreakdoelseelseifendfalseforfunctionifinlocalnilnotorrepeatreturnthentrueuntilwhile    

单行注释:--         多行注释:--[[           --]]

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:线程暂不讨论


0 0
原创粉丝点击