游戏脚本之王 -- Lua学习
Lua的数据类型
8种数据类型
- nil ---- 空,表示一个无效的值
- boolean ---- 布尔值,true:真, false: 假
- number ---- 表示双精度类型的实浮点数
- string ---- 字符串
- function ---- 函数
- userdata ---- 用户自定义类型, 表示任意存储在变量中的C数据结构
- thread ---- 表示执行的独立线程,用于执行协同程序(协程)
- table ---- Lua 中的表(table)其实是一个"关联数组"(associative arrays),数组的索引可以是数字或者是字符串。在 Lua 里,table 的创建是通过"构造表达式"来完成,最简单构造表达式是{},用来创建一个空表
注意点
- 比较空nil值时,应该使用""双引号包括nil:"nil"
type(x) == nil
是不对的,应该是type(x) == "nil"
才能正确的比较是否为nil
- 布尔类型 false 和 nil 都为假,只有true为真
- Lua的number类型相当于double类型,可以自己修改源码修改number的默认类型
- string表示字符串的话单引号和双引号和 [[ ]] 都可以
str1 = 'Hello Lua'
str2 = "Hello Lua"
str3 = [["Hello Lua"]]
- 字符串连接使用 ..
-
使用 # 来计算字符串的长度
#str1
- table 索引是从1开始的
- function是可以存在变量里的
- Lua的变量类型有三种:局部变量,全局变量,表中的域
- Lua中不等于是 ~= 而不是 !=
Lua循环控制
循环
- while
- for
- repeat until
- 循环嵌套
- 循环控制语句break (注意!如果你使用循环嵌套,break语句将停止最内层循环的执行,并开始执行的外层的循环语句)
流程
string操作
string.upper(argument)
: 字符串全部转为大写字母
string.lower(argument)
: 字符串全部转为小写字母
string.gsub(mainString, findString, replaceString,num)
: 在字符串中替换,mainString为要替换的字符串, findString 为被替换的字符,replaceString 要替换的字符,num 替换次数(可以忽略,则全部替换)
string.find (str, substr, [init, [end]])
: 在一个指定的目标字符串中搜索指定的内容(第三个参数为索引),返回其具体位置。不存在则返回 nil
string.reverse(arg)
: 字符串反转
string.format(...)
: 返回一个类似printf的格式化字符串
string.char(arg)
和 string.byte(arg[,int])
: char 将整型数字转成字符并连接, byte 转换字符为整数值(可以指定某个字符,默认第一个字符)
string.len(arg)
: 计算字符串长度
string.rep(string, n)
: 返回字符串string的n个拷贝
..
: 链接两个字符串
string.gmatch(str, pattern)
: 回一个迭代器函数,每一次调用这个函数,返回一个在字符串 str 找到的下一个符合 pattern 描述的子串。如果参数 pattern 描述的字符串没有找到,迭代函数返回nil
string.match(str, pattern, init)
: string.match()只寻找源字串str中的第一个配对. 参数init可选, 指定搜寻过程的起点, 默认为1。在成功配对时, 函数将返回配对表达式中的所有捕获结果; 如果没有设置捕获标记, 则返回整个配对字符串. 当没有成功的配对时, 返回nil
posted @
2018-03-15 09:57
AbstractLee
阅读(
267)
评论()
编辑
收藏
举报