首页 > 代码库 > lua学习笔记之类型和值

lua学习笔记之类型和值

Lua学习笔记之类型和值

1、全局变量

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

如果需要删除一个全局变量,只需要将变量赋值为nil

2、词法约定

标识符:字母或者下划线开头的字母、下划线、数字序列,最好不要使用下划线家大写字母的标识符,因为lua的保留字也是这样的。

3、命令行方式

Lua[options][script[args]]

-e:直接将命令传入lua

Prompt>lua –e “print(math.sin(12))”

-l:加载一个文件

-i:进入交互模式

4、lua是动态类型的语言,变量不要类型定义。Lua中有8个基本类型分别为:nil、boolean、uumber、string、userdata、function、thread和table。函数type可以测试给定变量或者值的类型。

print(type(“hello world”))

Print(type(10.4*3))

Print(type(true))

Print(type(nil))

4.1、nil

Lua中特殊的类型,他是有一个值:nil;一个全局变量没有被赋值以前默认是nil;

给全局变量赋nil可以删除该变量

4.2、Booleans

两个取值false和true。但是要注意Lua中左右的值都可以作为条件。在控制结构的条件中除了false和nil为假,其他都为真,所以认为0和空串都为真.

4.3、numbers

表示实数,lua中没有整数。一般有个错误的看法cpu运算浮点数比整数慢。事实不是如此,实数带起整数不会有什么误差。Lua的number可以处理任何长整数不用担心误差。你可以在编译lua的时候使用长整形或者单精度浮点代替numbers。

4.4strings

指字符的序列。Lua是8位字节,所以字符串包含任何数字字符,包括嵌入的0.这意味着你可以存储任意的二进制数据在一个字符串里面。Lua中字符串是不可以修改的,你可以创建一个全新的变量存放你的字符串,例如:

a = “one string”

b = string.gsub(a,”one”,another)

print(a)

print(b)

string和其他的对象一样,lua自动进行内存分配和释放,一个string可以包含一个字符也可以包含一本书,lua可以搞笑的处理厂字符串,1M的string在Lua中很常见。可以使用单引号或者双引号表示字符串

a = “a line ”

b = ‘another line’

为了风格统一,最好使用一种,除非两种引号嵌套情况。Lua中转义序列有:

\a

\b后退

\f换页

\n换行

\r回车

\t制表

\\“\”

\”双引号

\’单引号

4.5、functions
函数是第一类值(和其他变量相同),意味着函数可以存储在变量中,可以作为函数的参数,也可以作为函数的返回值。Lua可以调用lua或者C实现的函数,lua所有标准库都是用C实现的。标准库包括string库、table库、I/O库、OS库、算数库、debug库。

4.6、Userdata and Threads

Userdata可以将c数据存放在lua变量中,userdata在lua中除了赋值和相等比较外没有预定义的操作。Userdata用来描述应用程序或者使用C实现的库创建的新类型。

lua学习笔记之类型和值