lua中有八种基本类型,需要注意的是(function、thread、nil这三种类型)
print(type(10.0))--使用type函数可以获得一个变量的类型信息
print(type(false))
print(type("123"))
逻辑运算:
a=30
b=20
c=(a>b) and a or b --lua中这个式子相当于:c=a>b? a:b
print(c)
lua中定义一个table(注意,并不是数组)
--lua中可以这样定义一个table:
tTable={"mon","tue","wen","thr","fri","sat","sun"}--一个包含了一周天数的字符串表示的table
--利用循环来遍历表中的元素:
for i=0,#tTable do --要注意的是,lua中从1开始,而非一般编程语言中的从0开始
print(tTable[i]) --如果从0开始遍历数组元素的话(即i=0)则第一个print函数打印的第一项为nil
end --lua中每一个代码段都要用end关键字表示结束,for循环也要用do表示开始
--lua中还有这样一种table的定义方式:
--[[
info={name="yang hao chen",age="23",
{x=10,y=20},--1
{x=30,y=40},
{x=50,y=60}};
print(info["name"]); --即可以将name和age作为key来获取集合中的value
print(info["age"]);
--使用".."连接字符串,而在table花括号当中,再用一对 花括号括起来的内容可以用这样的方式来访问:
print("info[2].x="..info[2].x..",info[2].y="..info[2].y);
]]
--而在lua中,一种更为通用的table定义方式是这样的:
--[[
opnames = { ["+"] = "add", ["-"] = "sub", ["*"] = "mul", ["/"] = "div"}
print(opnames["+"])
i = 20; s = "-"
a = { [i + 0] = s, [i + 1] = s .. s, [i + 2] = s..s..s }
print(a[22]) --在上面的table定义中,table并没有第20项,然而lua允许直接访问并赋值的操作(table不像数组一样在定义时需要指定数组大小)
]]