- lua区分大小写
- 在Lua中有8中基础类型:nil(空值),Boolean(布尔值),Number(数值),String(字符串),Table(关系表达式),Function(函数类型),Userdate(自定义类型),Thread(线程类型)。
number
- number方法
local num = 1.25
print(math.ceil(num))--向上取整
print(math.floor(num))--向下取整
print(math.random())--随机数
print(tonumber("123"))--转换成数字
string
-
\a bell(响铃) \b back space(后退) \f form feed(换页) \n Newline(换行) \r carriage return(回车) \t Horizontal tab(水平tab) \v Vertical tab(垂直tab) \ Backslash(反斜杠) \” Double quote(双引号) \’ Single quote(单引号) [ Left square bracker(左中括号) ] Right square bracket(右中括号) - string方法
--string local str = "你好" str = string.gsub(str, "你", "他")--替换 str = string.sub(str, 1, 3)--截取[1, 3]索引的字符,对于中文需要3个位置才能截取到一个。空格也算一个字符 str = "123 jn jjj" print(string.sub(str, 1, 5))-->123 j print(#str)-->10 local str1 = "你好游戏\n"--中文占3个字符,转义字符占一个字符 print(#str1)-->13
table
- table方法:
table.insert(table_1, 2, 5)--表的插入
--table
local table_1 = {1, 2, 3}
table.insert(table_1, 2, 5)--表的插入
for i, v in ipairs(table_1) do
print(v)
end
print("-----------------")
local table1 = {{1, 2}, {3, 4}, {5, 6}}
print(#table1)--打印长度
print("-----------------")
local table2 = {
1,
nil,
[3] = "大聪明",
["愚公"] = {0, 120, 50},
jack = {1, 2, 3},
"nihao",
}
print(#table2)
print(table2[3])--先给没有索引的排序,有指明索引的需要加""
print(table2["jack"][2])
equipList_zuoqi = {
[1] = {"汗血宝马", "升阶丹", 1, 1300000, 30},
[2] = {"绝影", "升阶丹", 2, 2100000, 35},
[3] = {"疾风", "升阶丹", 5, 3400000, 40},
[4] = {"梦魇兽", "升阶丹", 10, 5500000, 45},
[5] = {"雪域天狼", "升阶丹", 20, 8900000, 50},
[6] = {"独角兽", "升阶丹", 50, 14400000, 60},
[7] = {"裂天魔狮", "升阶丹", 100, 23300000, 70},
[8] = {"吼天兽", "升阶丹", 200, 37700000, 80},
[9] = {"地煞瞳兽", "升阶丹", 500, 61000000, 90},
[10] = {"火麒麟", "升阶丹", 1000, 98700000, 100},
[11] = {"不死鸟", "升阶丹", 2000, 159700000, 110},
[12] = {"龙鹰", "升阶丹", 5000, 300000000, 130},
}
print(equipList_zuoqi[5][3])
funcion
-
function方法:
-
function fun1(a, b)--形参 return a + b end x = fun1(1, 2)--实参 print(x) print("----------------")
变量定义
- 变量总是全局变量,除非,你在前面加上“local”。即使在方法中。
- 变量名,它是大小写敏感的,也就是说,A和a是两个不同变量。
- 没有初始化的变量,默认是nil。
算术操作符
- 常规的算术操作符包括:“+”,“-”,“*”,“/”,“%(取余)”,“^(指数)”
关系操作符
-
常规的关系操作符包括:< , > , <= , >= , ~= , == 。这里所有的操作符返回的结果都是true或者false。
-
同类型才能比较,否则为false。
-
如果两个比较的值为对象(如:function,table),只有它们引用的是同一个对象时结果才会是true。
--比如:不能直接比较对象 table1 = {1, 2, 3} table2 = {1, 2, 3} print(table1 == table2) -->false
逻辑操作符
-
在Lua中,只有false和nil才计算为false,其它任何数据都计算为true,0也是true。
and 和 or的运算结果不是true和false,而是和它的两个操作数相关。
-
print(8 and 4)-->4 print(8 or 4)-->8
控制结构
Lua中控制结构包括以下几种:
-
条件控制:if 条件 then ... elseif 条件 then ... else ... End
-- 条件为true,则执行then部分,false执行else部分。
-
While循环:while 条件 do... end
-- 条件为false,循环结束,条件为true,执行循环体,并重复这一过程。
-- 或者遇到break,跳出循环。
-
Repeat循环:repeat ... until 条件
-- 一直执行repeat的循环体,直到条件为真
-
数值型For循环:for 变量 = 初值,终点值,步进 do ... End
-- 其中步进是可选的,如果不指定,默认为1
-
泛型for循环:通过一个迭代器函数来遍历所有的值:
for k,v in pairs(chs) do ...end
--遍历table chs的的所有值,包括key,value。
- 标准库提供了几种迭代器,包括用于迭代文件中每行的(io.lines),迭代table元素的(pairs),迭代table组元素的(ipairs),迭代字符串中单词的(string.gmatch)等。