Lua入门教程 2.类型与值
2016-06-03 19:42
323 查看
0x02
基础类型
Lua有总共8种基础类型:nil
boolean
number
string
userdata
function
thread
table
e.g:
print(type("hello")) -->string print(type(2)) -->number print(type(true)) -->boolean print(type(print)) -->function print(type(nil)) -->nil print(type(type(x))) -->string
1.nil(空)
这个类型只有一个值,主要功能是用于区别其他任何值
2.boolean(布尔)
有两个值 true 和 false,Lua将false和nil视为假,而除此之外都视为真
3.number(数字)
这个类型用于表示实数,Lua没有整数类型。Lua中的数字可以表示任何32位整数,而不会产生四舍五入的错误。
右边是数字常量的普通写法:
4 0.4 4.57e-3 0.3e12 5e+20
4.string(字符串)
Lua中的字符串通常表示一个字符序列,Lua的字符串是不可变的值。不能像在C中那样直接修改字符串的某个字符,而是应该根据修改要求来创建一个新的字符串
a = "hello world" b = string.gsub(a, "hello", "good") print(a) --> hello world print(b) --> good world
字符串的创建和释放由Lua本身的内存管理控制,无须担心
还可以用一对匹配的双括号来界定一个字母字符串,如:
page = [[ <html> <head> test </head> <html> ]]
Lua在对数字和字符串进行操作的时候会自动在字符串上应用算术操作,会尝试将字符串转换成一个数字:
print("10" + 1) -->转换成数字 pritn("10 + 1")
也会在需要转换的地方进行向数字的转换: print(10..20) --> 1020 ".." 是字符串连接符 tonumber函数用于将字符串转换为数字,如果尝试转换失败则会返回 nil e.g tonumber(test) #可以用于字符串长度的返回 e.g a = "haha" print(#a) -->4
5.table(表)
table类型实现了“关联数组“,是一种特殊索引方式的数组,不仅可以用整数来索引,也可以用字符串和其它类型来索引(除了nil)。table即不是值也不是变量,而是对象。
table是通过构造表达式创建。最简单的创建是{}
e.g a = { } --> 创建表 a["z"] = "ero" -->新条目,key:"z" val:"ero" a[20] = "test" -->新条目,key:"20 val:"test"
获取值的方式:a[“z”] 或者 a.z(这种方式更加方便)
注:a.x和a[x]的区别,前者表示a[“x”],而后者表示以变量x的值来索引table
Lua的索引值习惯以1开始
Lua5.1中,长度操作符”#”用于返回一个数组或线性表的最后一个索引值
for i =1, #a do print(a[i]) --a为一个字符串数组 end
6.function(函数)
函数也可以被储存在变量当中,可以当作参数传递,也可以在函数中返回。
变量
1.变量的初始化
Lua中的变量初始化是不用进行类型声明的,直接进行赋值操作即可:a = 10 print(a) func = print func("Hello World") -->Hello World 这也是合法的
2.变量的销毁
直接将变量赋值为nil即可hello = "hello world" hello = nil --完成了销毁
相关文章推荐
- 详解Lua中的表的概念及其相关操作方法
- Lua编程示例(二):面向对象、metatable对表进行扩展
- 把Lua编译进nginx步骤方法
- Lua脚本自动生成APK包
- Lua中的元表(metatable)、元方法(metamethod)详解
- Lua中的metatable介绍
- Lua中ipair和pair的区别
- Lua中的函数精讲笔记
- 浅谈Lua的面向对象特性
- 详解Lua中的变量相关知识点
- Lua脚本语言入门笔记
- Lua脚本调用外部脚本
- 详解Lua中的if语句的使用方法
- Lua中调用函数使用点号和冒号的区别
- Lua中的闭合函数、非全局函数与函数的尾调用详解
- Lua中强大的元方法__index详解
- Lua中调用C++函数示例
- Lua面向对象之类和继承浅析
- Lua性能优化技巧(一):前言
- Lua中获取table长度问题探讨