首页 > 代码库 > 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学习笔记之类型和值