脚本之王Lua学习

游戏脚本之王 -- Lua学习


Lua的数据类型

8种数据类型

  1. nil ---- 空,表示一个无效的值
  2. boolean ---- 布尔值,true:真, false: 假
  3. number ---- 表示双精度类型的实浮点数
  4. string ---- 字符串
  5. function ---- 函数
  6. userdata ---- 用户自定义类型, 表示任意存储在变量中的C数据结构
  7. thread ---- 表示执行的独立线程,用于执行协同程序(协程)
  8. 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语句将停止最内层循环的执行,并开始执行的外层的循环语句)

流程

  • if
  • if else
  • if嵌套

string操作

  1. string.upper(argument) : 字符串全部转为大写字母
  2. string.lower(argument) : 字符串全部转为小写字母
  3. string.gsub(mainString, findString, replaceString,num): 在字符串中替换,mainString为要替换的字符串, findString 为被替换的字符,replaceString 要替换的字符,num 替换次数(可以忽略,则全部替换)
  4. string.find (str, substr, [init, [end]]) : 在一个指定的目标字符串中搜索指定的内容(第三个参数为索引),返回其具体位置。不存在则返回 nil
  5. string.reverse(arg) : 字符串反转
  6. string.format(...) : 返回一个类似printf的格式化字符串
  7. string.char(arg)string.byte(arg[,int]) : char 将整型数字转成字符并连接, byte 转换字符为整数值(可以指定某个字符,默认第一个字符)
  8. string.len(arg) : 计算字符串长度
  9. string.rep(string, n) : 返回字符串string的n个拷贝
  10. .. : 链接两个字符串
  11. string.gmatch(str, pattern) : 回一个迭代器函数,每一次调用这个函数,返回一个在字符串 str 找到的下一个符合 pattern 描述的子串。如果参数 pattern 描述的字符串没有找到,迭代函数返回nil
  12. string.match(str, pattern, init) : string.match()只寻找源字串str中的第一个配对. 参数init可选, 指定搜寻过程的起点, 默认为1。在成功配对时, 函数将返回配对表达式中的所有捕获结果; 如果没有设置捕获标记, 则返回整个配对字符串. 当没有成功的配对时, 返回nil
posted @ 2018-03-15 09:57  AbstractLee  阅读(267)  评论(0编辑  收藏  举报